gitk: update aqua scrolling for TclTk 8.6 / TIP171

Tk provides MouseWheel events to aqua, similar to win32. But, these events on aqua have a nominal motion value (%D) of 1, not 120 as on win32. gitk on aqua provides specific bindings only for the top 3 panes, giving a nominal scrolling amount of +/- 1 for all events. gitk includes a hidden feature providing horizontal scrolling of the commit graph, added in 5fdcbb1390 ("gitk: Fixes for Mac OS X TkAqua", 2009-03-23). This horizontal scrolling is triggered by mouse events in any of the top 3 panes, and thus violates normal gui design where the object under the mouse cursor scrolls. Let's update this using the common bindings in 'proc bind_mousewheel', allowing user preferences on motion scaling to apply to all windows. The commit graph scrolling feature is removed by this, and will be added back for all platforms in a later commit. Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>

Mark Levedahl committed Jun 3, 2025 at 15:04 UTC 24fb77a2a8218017ca38e28165eec4f9b7be141d
1 file changed +2 -8
gitk
+2 -8
@@ -2735,14 +2735,8 @@ proc makewindow {} {
2735 set scroll_D0 1
2736 bind_mousewheel_buttons
2737 } elseif {[tk windowingsystem] == "aqua"} {
2738 - bindall <MouseWheel> {
2739 - set delta [expr {- (%D)}]
2740 - allcanvs yview scroll $delta units
2741 - }
2742 - bindall <Shift-MouseWheel> {
2743 - set delta [expr {- (%D)}]
2744 - $canv xview scroll $delta units
2745 - }
2738 + set scroll_D0 1
2739 + bind_mousewheel
2740 } else {
2741 puts stderr [mc "Unknown windowing system, cannot bind mouse"]
2742 }