summaryrefslogtreecommitdiff
path: root/gtk2_ardour/monitor_section.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2018-12-10 18:41:59 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2018-12-10 18:41:59 -0500
commit29eac8ee4e813b8e0d48ea04135e7e6ab45af070 (patch)
treefd8e331a07fc41b664a0f6351337c86ca3d46c1e /gtk2_ardour/monitor_section.cc
parent1de181479fe2d695457d2a0e247fca105cc09209 (diff)
no longer delete and recreate MonitorSection when it is removed/added to a Session
Diffstat (limited to 'gtk2_ardour/monitor_section.cc')
-rw-r--r--gtk2_ardour/monitor_section.cc19
1 files changed, 10 insertions, 9 deletions
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<ActionGroup> 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<Action> 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 */