]> git.ipfire.org Git - thirdparty/git.git/commitdiff
gitk: wheel scrolling multiplier preference
authorMark Levedahl <mlevedahl@gmail.com>
Tue, 3 Jun 2025 11:36:44 +0000 (07:36 -0400)
committerMark Levedahl <mlevedahl@gmail.com>
Thu, 17 Jul 2025 03:01:51 +0000 (23:01 -0400)
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>
gitk

diff --git a/gitk b/gitk
index 8b3476c5160d2ce7c17be76916a38e8bfc10f7d4..0596e4382a56ca53f687559fb6df3d3a06f21a93 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -11593,6 +11593,9 @@ proc prefspage_general {notebook} {
     spinbox $page.autosellen -from 1 -to 40 -width 4 -textvariable autosellen
     ttk::label $page.autosellenl -text [mc "Length of commit ID to copy"]
     grid x $page.autosellenl $page.autosellen -sticky w
+    ttk::label $page.kscroll1 -text [mc "Wheel scrolling multiplier"]
+    spinbox $page.kscroll -from 1 -to 20 -width 4 -textvariable kscroll
+    grid x $page.kscroll1 $page.kscroll -sticky w
 
     ttk::label $page.ddisp -text [mc "Diff display options"] -font mainfontbold
     grid $page.ddisp - -sticky w -pady 10
@@ -12369,6 +12372,7 @@ set visiblerefs {"master"}
 set maxlinelen 200
 set showlocalchanges 1
 set limitdiffs 1
+set kscroll 3
 set datetimeformat "%Y-%m-%d %H:%M:%S"
 set autocopy 0
 set autoselect 1
@@ -12490,6 +12494,7 @@ set config_variables {
     headoutlinecolor
     hideremotes
     indexcirclecolor
+    kscroll
     limitdiffs
     linehoverbgcolor
     linehoverfgcolor