From 29eac8ee4e813b8e0d48ea04135e7e6ab45af070 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 10 Dec 2018 18:41:59 -0500 Subject: no longer delete and recreate MonitorSection when it is removed/added to a Session --- gtk2_ardour/monitor_section.cc | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'gtk2_ardour/monitor_section.cc') diff --git a/gtk2_ardour/monitor_section.cc b/gtk2_ardour/monitor_section.cc index 94a821c866..201bd175e4 100644 --- a/gtk2_ardour/monitor_section.cc +++ b/gtk2_ardour/monitor_section.cc @@ -60,9 +60,6 @@ using namespace Gtkmm2ext; using namespace PBD; using namespace std; -Glib::RefPtr MonitorSection::monitor_actions; -Gtkmm2ext::Bindings* MonitorSection::bindings = 0; - #define PX_SCALE(px) std::max((float)px, rintf((float)px * UIConfiguration::instance().get_ui_scale())) MonitorSection::MonitorSection (Session* s) @@ -96,15 +93,13 @@ MonitorSection::MonitorSection (Session* s) Glib::RefPtr act; - if (!monitor_actions) { - register_actions (); - load_bindings (); - } + load_bindings (); + register_actions (); + set_data ("ardour-bindings", bindings); + bindings->associate (); channel_size_group = SizeGroup::create (SIZE_GROUP_HORIZONTAL); - set_data ("ardour-bindings", bindings); - _plugin_selector = new PluginSelector (PluginManager::instance()); insert_box = new ProcessorBox (_session, boost::bind (&MonitorSection::plugin_selector, this), _rr_selection, 0); insert_box->set_no_show_all (); @@ -622,6 +617,12 @@ MonitorSection::set_session (Session* s) populate_buttons (); + /* some actions may have been left in the wrong state from a + * previous monitor route that was then deleted + */ + ActionManager::set_sensitive (monitor_actions, true); + ActionManager::set_sensitive (solo_actions, true); + } else { /* no session */ -- cgit v1.2.3