diff --git a/gtk2_ardour/pianoroll.cc b/gtk2_ardour/pianoroll.cc index 0e466f2e00..fd5b6e9392 100644 --- a/gtk2_ardour/pianoroll.cc +++ b/gtk2_ardour/pianoroll.cc @@ -1569,6 +1569,11 @@ Pianoroll::automation_active_button_click (Evoral::ParameterType type, int id) if (view) { Evoral::Parameter p (type, _visible_channel, id); + if (view->is_active_automation (p)) { + view->unset_active_automation (); + return; + } + if (!layered_automation && !view->is_visible_automation (p)) { view->hide_all_automation (); } diff --git a/gtk2_ardour/pianoroll_midi_view.cc b/gtk2_ardour/pianoroll_midi_view.cc index c27fa8fe44..8146f178e4 100644 --- a/gtk2_ardour/pianoroll_midi_view.cc +++ b/gtk2_ardour/pianoroll_midi_view.cc @@ -588,13 +588,6 @@ PianorollMidiView::unset_active_automation () } } - /* If the currently active automation is the only one visible, hide it */ - - if (active_automation->visible && visible == 1) { - active_automation->hide (); - set_height (_height); - } - active_automation = nullptr; AutomationStateChange(); /* EMIT SIGNAL */ diff --git a/gtk2_ardour/pianoroll_midi_view.h b/gtk2_ardour/pianoroll_midi_view.h index 0f9ed13fa2..9aa59cff55 100644 --- a/gtk2_ardour/pianoroll_midi_view.h +++ b/gtk2_ardour/pianoroll_midi_view.h @@ -66,6 +66,7 @@ class PianorollMidiView : public MidiView void hide_all_automation (); void swap_automation_channel (int); void set_active_automation (Evoral::Parameter const &); + void unset_active_automation (); bool is_active_automation (Evoral::Parameter const &) const; bool is_visible_automation (Evoral::Parameter const &) const; size_t n_visible_automation () const; @@ -143,7 +144,6 @@ class PianorollMidiView : public MidiView AutomationDisplayState* find_or_create_automation_display_state (Evoral::Parameter const &); void internal_set_active_automation (AutomationDisplayState&); - void unset_active_automation (); bool midi_canvas_group_event (GdkEvent*); bool automation_group_event (GdkEvent*);