summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_strip.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-01-28 23:32:54 +0100
committerRobin Gareus <robin@gareus.org>2020-01-28 23:37:10 +0100
commitb21bab3a8c8b0b93f46cacf6d99e748b11e8ca46 (patch)
tree61a5056807d5fab6ce7ab6b4e4a09113377791e9 /gtk2_ardour/mixer_strip.cc
parent6dfee0b1d2b4db94b43138ca1f26f51e6b8cdc51 (diff)
Don't allow to deactivate master
Diffstat (limited to 'gtk2_ardour/mixer_strip.cc')
-rw-r--r--gtk2_ardour/mixer_strip.cc21
1 files changed, 14 insertions, 7 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index d5d0c5944f..f220319346 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -1697,7 +1697,7 @@ MixerStrip::build_route_ops_menu ()
#ifdef MIXBUS
&& !_route->mixbus()
#endif
- ) {
+ ) {
if (Profile->get_mixbus()) {
items.push_back (SeparatorElem());
}
@@ -1713,16 +1713,23 @@ MixerStrip::build_route_ops_menu ()
items.push_back (SeparatorElem());
}
- items.push_back (CheckMenuElem (_("Active")));
- Gtk::CheckMenuItem* i = dynamic_cast<Gtk::CheckMenuItem *> (&items.back());
- i->set_active (active);
- i->set_sensitive(! _session->transport_rolling());
- i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteUI::set_route_active), !_route->active(), false));
+ if ((!_route->is_master() || !active)
+#ifdef MIXBUS
+ && !_route->mixbus()
+#endif
+ )
+ {
+ items.push_back (CheckMenuElem (_("Active")));
+ Gtk::CheckMenuItem* i = dynamic_cast<Gtk::CheckMenuItem *> (&items.back());
+ i->set_active (active);
+ i->set_sensitive (!_session->transport_rolling());
+ i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteUI::set_route_active), !_route->active(), false));
+ }
if (active && !Profile->get_mixbus ()) {
items.push_back (SeparatorElem());
items.push_back (CheckMenuElem (_("Strict I/O")));
- i = dynamic_cast<Gtk::CheckMenuItem *> (&items.back());
+ Gtk::CheckMenuItem* i = dynamic_cast<Gtk::CheckMenuItem *> (&items.back());
i->set_active (_route->strict_io());
i->signal_activate().connect (sigc::hide_return (sigc::bind (sigc::mem_fun (*_route, &Route::set_strict_io), !_route->strict_io())));
}