From 6e05ab30fb29c8ada2d31421d1e53049a3054965 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 23 Jan 2026 01:06:16 +0100 Subject: [PATCH] Ignore fine-grained modifier when using modified X-axis scroll in the summary --- gtk2_ardour/editor_summary.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/editor_summary.cc b/gtk2_ardour/editor_summary.cc index 679f753ea9..a6b08f9225 100644 --- a/gtk2_ardour/editor_summary.cc +++ b/gtk2_ardour/editor_summary.cc @@ -775,14 +775,18 @@ EditorSummary::on_scroll_event (GdkEventScroll* ev) get_editor (&xr); double x = xr.first; + bool user_needs_to_buy_a_proper_mouse = false; + GdkScrollDirection direction = ev->direction; if (ev->state & Keyboard::TertiaryModifier) { switch (ev->direction) { case GDK_SCROLL_UP: + user_needs_to_buy_a_proper_mouse = true; direction = GDK_SCROLL_LEFT; break; case GDK_SCROLL_DOWN: + user_needs_to_buy_a_proper_mouse = true; direction = GDK_SCROLL_RIGHT; break; default: @@ -810,7 +814,7 @@ EditorSummary::on_scroll_event (GdkEventScroll* ev) _editor.temporal_zoom_step (false); } else if (Keyboard::modifier_state_contains (ev->state, Keyboard::SecondaryModifier)) { x -= 64; - } else if (Keyboard::modifier_state_contains (ev->state, Keyboard::TertiaryModifier)) { + } else if (Keyboard::modifier_state_contains (ev->state, Keyboard::TertiaryModifier) && !user_needs_to_buy_a_proper_mouse) { x -= 1; } else { _editor.scroll_left_half_page (); @@ -822,7 +826,7 @@ EditorSummary::on_scroll_event (GdkEventScroll* ev) _editor.temporal_zoom_step (true); } else if (Keyboard::modifier_state_contains (ev->state, Keyboard::SecondaryModifier)) { x += 64; - } else if (Keyboard::modifier_state_contains (ev->state, Keyboard::TertiaryModifier)) { + } else if (Keyboard::modifier_state_contains (ev->state, Keyboard::TertiaryModifier) && !user_needs_to_buy_a_proper_mouse) { x += 1; } else { _editor.scroll_right_half_page ();