From 78ad42fd88791da359640329874e2abf2acbebc9 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 7 Jun 2016 09:48:17 -0400 Subject: fix up logic that connects ControlGroups and RouteGroups This makes deactivating a RouteGroup also stop the ControlGroups from having any effect --- libs/ardour/route_group.cc | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'libs/ardour/route_group.cc') diff --git a/libs/ardour/route_group.cc b/libs/ardour/route_group.cc index 4288554565..ce6e4a12e2 100644 --- a/libs/ardour/route_group.cc +++ b/libs/ardour/route_group.cc @@ -395,6 +395,9 @@ RouteGroup::set_active (bool yn, void* /*src*/) } _active = yn; + + push_to_groups (); + send_change (PropertyChange (Properties::active)); _session.set_dirty (); } @@ -539,11 +542,19 @@ RouteGroup::post_set (PBD::PropertyChange const &) void RouteGroup::push_to_groups () { - _gain_group->set_active (_gain); - _solo_group->set_active (_solo); - _mute_group->set_active (_mute); - _rec_enable_group->set_active (_recenable); - _monitoring_group->set_active (_monitoring); + if (_active) { + _gain_group->set_active (is_gain()); + _solo_group->set_active (is_solo()); + _mute_group->set_active (is_mute()); + _rec_enable_group->set_active (is_recenable()); + _monitoring_group->set_active (is_monitoring()); + } else { + _gain_group->set_active (false); + _solo_group->set_active (false); + _mute_group->set_active (false); + _rec_enable_group->set_active (false); + _monitoring_group->set_active (false); + } } void -- cgit v1.2.3