-
Notifications
You must be signed in to change notification settings - Fork 95
マウス選択の挙動の変化 #468
Copy link
Copy link
Closed
Milestone
Description
5.1
- 文字の左半分にポインタあるとき
- 前方(左)にポインタが移動すると
- 左の文字の左半分にポインタが到達すると
- 左ボタンを押したときの左の文字が選択される
- 後方(右)にポインタが移動すると
- 右の文字の右半分にポインタが到達すると
- 左ボタンを押したときの右の文字が選択される
- 文字の右半分にポインタあるとき
- 前方(左)にポインタが移動すると
- この文字の右半分にポインタが到達すると
- この文字(左ボタンを押したときの文字)が選択される
- 後方(右)にポインタが移動すると
- 右の文字の右半分にポインタが到達すると
- この文字(左ボタンを押したときの右の文字)が選択される
Originally posted by @zmatsuo in #244
この文字のどの位置で選択を始めたかで挙動が違う(選択開始位置を半文字分ずらす)のは、
選択範囲を文字と文字の間で指定していると考えると分かりやすいと思います。
ドラッグで選択される文字の範囲も、この文字間を指定するという考えで調整されています。
この選択開始位置を半文字分ずらすという処理ですが、判定方法が LeftHalfOfDBCS()に
置き換えられる事によって e91f4dc でBuffChangeSelect()が、 1951576 でBuffChangeSelect()が
行わなくなりました。
上記二つの修正の結果、選択位置の指定方法が文字間から文字に変わったと言えると思います。
しかし文字による指定と考えた場合、選択範囲の決まり方の一部が不自然になりました。
- マウスを左(もしくは上)にドラッグした時に、選択開始した文字が選択に含まれない
- これの派生として、行の右端の文字を左方向へのドラッグで選択出来ない
- 正確には次の行の先頭の文字から開始すれば可能だが不自然
- これの派生として、行の右端の文字を左方向へのドラッグで選択出来ない
- マウスを右(もしくは下)にドラッグした時に、マウスポインタの位置の文字が選択されない
個人的には文字間を選択する挙動が好みなのですが、文字を選択する挙動のままにする場合は
選択範囲の文字の決め方を修正する必要が有ると思います。
以下、余談
5.2, 5.3でウィンドウアクティベート時に文字が選択され易くなったのは、判定方法が
BuffStartSelect()とBuffChangeSelect()で異なる為、同じ位置でも異なる結果が得られて
マウスが動いたとみなされていたのだと思います。
(バックグラウンド状態からのアクティベート時はBuffChangeSelect()も呼ばれる?)
Reactions are currently unavailable