From 3327f5b9f109b0a574f8c9a5934bb854716fea1a Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 18 Aug 2022 14:16:25 -0600 Subject: [PATCH] some rationalization of drag types from various rulers At present, TempoTwist is Primary-drag on the tempo ruler, and TempoCurve is Primary-drag on the meter ruler. Not sure that this is quite what we want here, but it makes more sense than the prior design, in which TempoTwist was available from non-tempo-related rulers --- gtk2_ardour/editor_mouse.cc | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index ba62c2bd76..8879a7ba5f 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -816,16 +816,16 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT case TempoBarItem: case TempoCurveItem: - if (Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) { + if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier) + && !ArdourKeyboard::indicates_constraint (event->button.state)) { + _drags->set (new CursorDrag (this, *_playhead_cursor, false), event); + } else if (Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) { _drags->set (new TempoCurveDrag (this, item), event); return true; } - /* fallthru */ - case MarkerBarItem: + return true; + case MeterBarItem: - case TimecodeRulerItem: - case SamplesRulerItem: - case MinsecRulerItem: if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier) && !ArdourKeyboard::indicates_constraint (event->button.state)) { _drags->set (new CursorDrag (this, *_playhead_cursor, false), event); @@ -834,7 +834,6 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT _drags->set (new TempoTwistDrag (this, item), event); } return true; - break; case BBTRulerItem: if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier) @@ -845,6 +844,16 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT } return true; + case TimecodeRulerItem: + case SamplesRulerItem: + case MinsecRulerItem: + case MarkerBarItem: + if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier) + && !ArdourKeyboard::indicates_constraint (event->button.state)) { + _drags->set (new CursorDrag (this, *_playhead_cursor, false), event); + } + return true; + case RangeMarkerBarItem: if (Keyboard::modifier_state_contains (event->button.state, Keyboard::TertiaryModifier)) { _drags->set (new RangeMarkerBarDrag (this, item, RangeMarkerBarDrag::CreateSkipMarker), event);