From 51256ad7c614f07bb7f1cc3cd5e9b1d024048614 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 7 Jan 2026 09:16:35 -0700 Subject: [PATCH] pianoroll: correctly hide (etc.) automation when switching regions --- gtk2_ardour/pianoroll_midi_view.cc | 21 +++++++++++++++++++++ gtk2_ardour/pianoroll_midi_view.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/gtk2_ardour/pianoroll_midi_view.cc b/gtk2_ardour/pianoroll_midi_view.cc index fcd7d1f95a..70eb46e586 100644 --- a/gtk2_ardour/pianoroll_midi_view.cc +++ b/gtk2_ardour/pianoroll_midi_view.cc @@ -465,6 +465,20 @@ PianorollMidiView::have_visible_automation () const return false; } +void +PianorollMidiView::hide_all_automation () +{ + unset_active_automation (); + + for (auto & [parameter,ads] : automation_map) { + ads.hide (); + } + + automation_map.clear (); + delete velocity_display; + velocity_display = nullptr; +} + void PianorollMidiView::toggle_visibility (Evoral::Parameter const & param) { @@ -936,3 +950,10 @@ PianorollMidiView::cut_copy_clear_one (AutomationLine& line, ::Selection& select } } } + +void +PianorollMidiView::set_region (std::shared_ptr mr) +{ + MidiView::set_region (mr); + hide_all_automation (); +} diff --git a/gtk2_ardour/pianoroll_midi_view.h b/gtk2_ardour/pianoroll_midi_view.h index 9855d0427f..74bf16a7a2 100644 --- a/gtk2_ardour/pianoroll_midi_view.h +++ b/gtk2_ardour/pianoroll_midi_view.h @@ -50,6 +50,7 @@ class PianorollMidiView : public MidiView ~PianorollMidiView(); + void set_region (std::shared_ptr); void set_samples_per_pixel (double); void set_height (double); @@ -61,6 +62,7 @@ class PianorollMidiView : public MidiView void ghost_sync_selection (NoteBase*); void toggle_visibility (Evoral::Parameter const & param); + void hide_all_automation (); void swap_automation_channel (int); void set_active_automation (Evoral::Parameter const &); bool is_active_automation (Evoral::Parameter const &) const;