From 51dbe70b44574c6b6839d7c8d6aa09be92aad817 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 20 Mar 2025 14:14:08 -0600 Subject: [PATCH] no more trim cursor in drae mode in the pianoroll For some reason, we allow users to trim notes on the timeline when in draw mode. Not sure why. We don't allow this in pianorolls, so make sure the cursors don't suggest otherwise --- gtk2_ardour/editing_context.cc | 5 +++++ gtk2_ardour/editing_context.h | 2 ++ gtk2_ardour/midi_view.cc | 2 +- gtk2_ardour/pianoroll.cc | 6 ++++++ gtk2_ardour/pianoroll.h | 1 + 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/editing_context.cc b/gtk2_ardour/editing_context.cc index a6f75ed6b5..db9691c0f6 100644 --- a/gtk2_ardour/editing_context.cc +++ b/gtk2_ardour/editing_context.cc @@ -3339,3 +3339,8 @@ EditingContext::set_loop_range (timepos_t const & start, timepos_t const & end, commit_reversible_command (); } +bool +EditingContext::allow_trim_cursors () const +{ + return mouse_mode == MouseContent || mouse_mode == MouseTimeFX || mouse_mode == MouseDraw; +} diff --git a/gtk2_ardour/editing_context.h b/gtk2_ardour/editing_context.h index bce45c0fae..e74d4a2ce4 100644 --- a/gtk2_ardour/editing_context.h +++ b/gtk2_ardour/editing_context.h @@ -479,6 +479,8 @@ class EditingContext : public ARDOUR::SessionHandlePtr, public AxisViewProvider, void set_loop_range (Temporal::timepos_t const & start, Temporal::timepos_t const & end, std::string cmd); + virtual bool allow_trim_cursors () const; + protected: std::string _name; bool within_track_canvas; diff --git a/gtk2_ardour/midi_view.cc b/gtk2_ardour/midi_view.cc index 0d4aae7bff..7b64d40828 100644 --- a/gtk2_ardour/midi_view.cc +++ b/gtk2_ardour/midi_view.cc @@ -3977,7 +3977,7 @@ void MidiView::note_mouse_position (float x_fraction, float /*y_fraction*/, bool can_set_cursor) { Editing::MouseMode mm = _editing_context.current_mouse_mode(); - bool trimmable = (mm == MouseContent || mm == MouseTimeFX || mm == MouseDraw); + bool trimmable = _editing_context.allow_trim_cursors (); if (can_set_cursor) { if (trimmable && x_fraction > 0.0 && x_fraction < 0.2) { diff --git a/gtk2_ardour/pianoroll.cc b/gtk2_ardour/pianoroll.cc index 7c843e29a1..c6ebd83fba 100644 --- a/gtk2_ardour/pianoroll.cc +++ b/gtk2_ardour/pianoroll.cc @@ -2776,3 +2776,9 @@ Pianoroll::map_transport_state () } } } + +bool +Pianoroll::allow_trim_cursors () const +{ + return mouse_mode == Editing::MouseContent || mouse_mode == Editing::MouseTimeFX; +} diff --git a/gtk2_ardour/pianoroll.h b/gtk2_ardour/pianoroll.h index 4289c8f997..d9aad339ef 100644 --- a/gtk2_ardour/pianoroll.h +++ b/gtk2_ardour/pianoroll.h @@ -140,6 +140,7 @@ class Pianoroll : public CueEditor PianorollMidiView* midi_view() const { return view; } void set_session (ARDOUR::Session*); + bool allow_trim_cursors () const; protected: void load_bindings ();