diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-06-07 09:48:17 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-06-07 09:48:17 -0400 |
commit | 78ad42fd88791da359640329874e2abf2acbebc9 (patch) | |
tree | 4816f1ff3ef1944f278d079e787ade769c08c1be /libs/ardour/route_group.cc | |
parent | af9a9a9efd17452931525e3ddcf1d57bcbc7f4a7 (diff) |
fix up logic that connects ControlGroups and RouteGroups
This makes deactivating a RouteGroup also stop the ControlGroups from having any effect
Diffstat (limited to 'libs/ardour/route_group.cc')
-rw-r--r-- | libs/ardour/route_group.cc | 21 |
1 files changed, 16 insertions, 5 deletions
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 |