gitk: wheel scrolling multiplier preference

gitk provides scrolling of several windows, uses hard-coded values for the amount of scrolling, and these values differ across platforms and widgets. The nominal value used is either 1 text line per mouse / touchpad / button event, or 5 lines. Furthermore, Tk does not scroll text widgets by 1 line when told to, this usually gets 2-3 lines of motion. The upper canvas objects holding the commit graph do scroll as defined. But, clearly no value is universally preferred, so let's give the user some control over this. Provide a single multiplier to be applied for all scroll bindings, with a value of 3 to mean the default nominal value of 3 line. This is selected both as a compromise between the various defaults across platforms, and because it is the smallest value honored by the two text widgets on the bottom of the screen. Later commits will connect this variable for actual scrolling events. Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>

Mark Levedahl committed Jun 3, 2025 at 07:36 UTC ec02983e8da3ec625092792651e64aef45b778e1
1 file changed +5
gitk
+5
@@ -11593,6 +11593,9 @@ proc prefspage_general {notebook} {
11593 spinbox $page.autosellen -from 1 -to 40 -width 4 -textvariable autosellen
11594 ttk::label $page.autosellenl -text [mc "Length of commit ID to copy"]
11595 grid x $page.autosellenl $page.autosellen -sticky w
11596 + ttk::label $page.kscroll1 -text [mc "Wheel scrolling multiplier"]
11597 + spinbox $page.kscroll -from 1 -to 20 -width 4 -textvariable kscroll
11598 + grid x $page.kscroll1 $page.kscroll -sticky w
11599
11600 ttk::label $page.ddisp -text [mc "Diff display options"] -font mainfontbold
11601 grid $page.ddisp - -sticky w -pady 10
@@ -12369,6 +12372,7 @@ set visiblerefs {"master"}
12372 set maxlinelen 200
12373 set showlocalchanges 1
12374 set limitdiffs 1
12375 +set kscroll 3
12376 set datetimeformat "%Y-%m-%d %H:%M:%S"
12377 set autocopy 0
12378 set autoselect 1
@@ -12490,6 +12494,7 @@ set config_variables {
12494 headoutlinecolor
12495 hideremotes
12496 indexcirclecolor
12497 + kscroll
12498 limitdiffs
12499 linehoverbgcolor
12500 linehoverfgcolor