From 3b9c63fbac85cd9d942e6639a26fb5528ccd0f6e Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 19 Aug 2023 13:33:16 -0600 Subject: [PATCH] editor: add additional parameter to ::snap_to_with_modifier() Allows passing ensure_snap value through to ::snap_to_internal --- gtk2_ardour/editor.cc | 6 +++--- gtk2_ardour/editor.h | 4 +++- gtk2_ardour/public_editor.h | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index a918f9934c..ab6391e24f 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -2749,7 +2749,7 @@ Editor::set_snapped_cursor_position (timepos_t const & pos) * @param event Event to get current key modifier information from, or 0. */ void -Editor::snap_to_with_modifier (timepos_t& start, GdkEvent const * event, Temporal::RoundMode direction, SnapPref pref) +Editor::snap_to_with_modifier (timepos_t& start, GdkEvent const * event, Temporal::RoundMode direction, SnapPref pref, bool ensure_snap) { if (!_session || !event) { return; @@ -2757,7 +2757,7 @@ Editor::snap_to_with_modifier (timepos_t& start, GdkEvent const * event, Tempora if (ArdourKeyboard::indicates_snap (event->button.state)) { if (_snap_mode == SnapOff) { - snap_to_internal (start, direction, pref); + snap_to_internal (start, direction, pref, ensure_snap); } } else { @@ -2765,7 +2765,7 @@ Editor::snap_to_with_modifier (timepos_t& start, GdkEvent const * event, Tempora snap_to_internal (start, direction, pref); } else if (ArdourKeyboard::indicates_snap_delta (event->button.state)) { /* SnapOff, but we pressed the snap_delta modifier */ - snap_to_internal (start, direction, pref); + snap_to_internal (start, direction, pref, ensure_snap); } } } diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 02a7b360a1..8d45390dba 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -500,7 +500,9 @@ public: void snap_to_with_modifier (Temporal::timepos_t & first, GdkEvent const* ev, Temporal::RoundMode direction = Temporal::RoundNearest, - ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual); + ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual, + bool ensure_snap = false); + Temporal::timepos_t snap_to_bbt (Temporal::timepos_t const & start, Temporal::RoundMode direction, ARDOUR::SnapPref gpref); diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index 3aa2f5cdbd..d8cb9e2821 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -555,7 +555,8 @@ public: virtual void snap_to_with_modifier (Temporal::timepos_t & first, GdkEvent const* ev, Temporal::RoundMode direction = Temporal::RoundNearest, - ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual) = 0; + ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual, + bool ensure_snap = false) = 0; virtual Temporal::timepos_t snap_to_bbt (Temporal::timepos_t const & pos, Temporal::RoundMode, ARDOUR::SnapPref) = 0; virtual void set_snapped_cursor_position (Temporal::timepos_t const & pos) = 0;