selopenx,selopenyの値No.07457
K'zawa さん 12/08/30 19:53
 
こんにちは、K'zawaです。

selopenx,selopenyの値がおかしいです。
下記のマクロで、3,0 となるはずのところ、0,0 となっています。

config "xTabMode:0x0101";
insert "ABCDE,F\n,Z\n";
moveto 3, 0;
beginrect;
moveto 0, 1;

$s = $s + "seltop " + str( seltopx ) + "," + str( seltopy ) + "\n";
$s = $s + "selend " + str( selendx ) + "," + str( selendy ) + "\n";
$s = $s + "selopen " + str( selopenx ) + "," + str( selopeny ) + "\n";
$s = $s + "current " + str( x ) + "," + str( y ) + "\n";
message $s;

[ ]
RE:07457 selopenx,selopenyの値No.07458
K'zawa さん 12/08/30 20:07
 
K'zawaです。

「moveto 3, 0;」を、「moveto 4, 0;」に変えると、
カンマまで含められてしまいますが、なぜでしょう?

[ ]
RE:07458 selopenx,selopenyの値No.07459
秀まるお さん 12/08/31 08:49
 
 selopenxの値が狂う件ですが、こちらでも確認できました。たしかにバグって
ました。

 さっそく修正させていただきます。

 それと、「moveto 4, 0;」としてからBOX選択してカーソルを1行下に移動し
た場合に範囲選択が期待通りにならない点ですが、CSVモードでの列の幅が
「ABCD,」の幅よりも狭くなってしまってるがために、内部的に矛盾があってそ
うなってしまうようです。

 範囲選択開始位置のx座標が「,」の直前といいつつも、その位置は次のカラム
の先頭位置よりも右側になってしまうために、結果として「ABCD,」全体が選択
された扱いになってしまうようです。これはすみませんが内部的な矛盾として起
こりえる問題で、解決することは無理じゃないかと思います。

[ ]
RE:07459 selopenx,selopenyの値No.07460
K'zawa さん 12/08/31 10:01
 
秀まるおさん、こんにちは。
K'zawaです。

t3:07459| RE 07458 selopenx,selopenyの値
> selopenxの値が狂う件ですが、こちらでも確認できました。たしかにバグって
>ました。
>
> さっそく修正させていただきます。

よろしくお願いします。

> それと、「moveto 4, 0;」としてからBOX選択してカーソルを1行下に移動し
>た場合に範囲選択が期待通りにならない点ですが、CSVモードでの列の幅が
>「ABCD,」の幅よりも狭くなってしまってるがために、内部的に矛盾があってそ
>うなってしまうようです。

refreshtabstop を入れたら意図したとおりの範囲になりました。
再現マクロがいいかげんだったということで、気をつければおこらないという
ことでしょうか?

[ ]
RE:07460 selopenx,selopenyの値No.07461
秀まるお さん 12/08/31 10:16
 
> 再現マクロがいいかげんだったということで、気をつければおこらないという
> ことでしょうか?

 CSV/TSVモードで、1つのX座標に対して2つ以上の文字列が該当するような
ケースでは、どっちの文字列が該当するかは不定のつもりでマクロを作っていた
だくような形になるでしょうか。ちょっと説明が難しいのですけども。


 たとえは、CSVモードで、

 aaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbb,

 って文字列があるけども、1列目の列幅が4桁しか無かったとします。

 そうすると、画面上では

 aaaabbbbbbbbbbbbbbbbbbb

 みたいに出てきます。これの画面上の「bbb」のどこかをクリックすると、実
際そこにはaaaaとbbbbの両方の文字列がある訳ではありますが、カーソル位置と
してはbbbbの上になります。

 今回のBOX選択の場合も、内部的にはカーソル位置が「ピクセル単位でここの
位置」って風に記憶されていて、そこから文字的な位置を計算しなおすと、ちょ
うどマウスクリックした時と同じような位置になってしまうという感じです。

[ ]
RE:07461 selopenx,selopenyの値No.07462
K'zawa さん 12/08/31 13:29
 
秀まるおさん、こんにちは。
K'zawaです。

タブストップ位置関係の設定はだいたい自動調整になっていましたので、
重なることはまったく考えていませんでした。

再現マクロは、一行目では複数文字選択されているにもかかわらず、二行目では、
左下であるはずのxと、右下であるはずのselendxが同じ状態をつくったものです。

[ ]