sakura icon indicating copy to clipboard operation
sakura copied to clipboard

上下カーソルキーの移動間隔がスクロールの行数になっているのを変えませんか?

Open KENCHjp opened this issue 6 years ago • 3 comments

スクロールの行数を20とかにして、下キー押しっぱなしだとすごいスピードで画面送りしちゃうのですが、デフォルトを1かせめて2にしませんか?

KENCHjp avatar Jul 16 '18 10:07 KENCHjp

なんか、タイトル訂正したつもりだったのに戻ってる。。。

KENCHjp avatar Jul 18 '18 04:07 KENCHjp

スクロールの行数を20とかにして、下キー押しっぱなしだとすごいスピードで画面送りしちゃうのですが、デフォルトを1かせめて2にしませんか?

共通設定ダイアログ - 全般タブ の「スクロール」グループにある「行数」の話っすね。

初期値の設定コードはここです。 https://github.com/sakura-editor/sakura/blob/26e92e8067f9eb415ded2ea3c37129649d265bb2/sakura_core/env/CShareData.cpp#L238

見て分かる通り、初期値は 3 です。 なので デフォルトを1かせめて2にしませんか? が提案だとすると 意味あります? を確認する流れになるっす。

ただ、変数名が仕様的におかしいです。

変数名やコメントを見たら「キーリピート時のスクロール行数」を独自に定義できるようにしていることが読み取れると思います。キーリピートってのは windows api プログラミングの基本概念の一つです。キーを押しっぱなしにしたときのキー押下イベントにはキーリピート情報(連続したキー押下のN回目であることを示す情報)が付加されます。この windows api の仕様を正確に理解していたら「キーリピート時のスクロール行数」を独自定義しようって発想は出て来ないです。

下方向キーを押しっぱなしにしたら、2回分の時間であっても10回分の時間であっても独自に設定された行数がスクロールされることになってしまいます。(正確には2回目、3回目、4回目のそれぞれで、設定された行数がスクロールされる結果になります。)

こいつを修正するには、現状の誤りを認めたうえであるべき姿を検討して再実装してやる必要があります。

現状の誤りを認めるの部分がかなり難しいと思うので、修正は厳しいと思います。

berryzplus avatar Sep 19 '20 10:09 berryzplus

ちなみに、行数の有効範囲は [1, 10] なので 20 を設定するには ini を直接編集する必要があります。 https://github.com/sakura-editor/sakura/blob/26e92e8067f9eb415ded2ea3c37129649d265bb2/sakura_core/prop/CPropComGeneral.cpp#L438-L445

共通設定ダイアログの全般タブを表示しただけでは上記のコードを通らないため、範囲外の値20がそのまま表示されます。

要するに、問題は1個だけじゃなくてたくさんあるってことで、1個ずつ「小さな誤り」を受け止めて「正しい在り方」を模索していく姿勢が必要になるということです。

berryzplus avatar Sep 19 '20 13:09 berryzplus