diff options
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 |