Fix Monitor Group override
authorRobin Gareus <robin@gareus.org>
Mon, 12 Jun 2017 18:47:11 +0000 (20:47 +0200)
committerRobin Gareus <robin@gareus.org>
Mon, 12 Jun 2017 18:47:44 +0000 (20:47 +0200)
gtk2_ardour/route_ui.cc

index e8443fb9052b081a387c701852a82e3e91f2c928..765461f4abe69eb07de58cc303e26a38da80a701 100644 (file)
@@ -916,22 +916,20 @@ RouteUI::monitor_release (GdkEventButton* ev, MonitorChoice monitor_choice)
        }
 
        if (Keyboard::modifier_state_equals (ev->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier))) {
+               /* Primary-Tertiary-click applies change to all routes */
                rl = _session->get_routes ();
-
+               _session->set_controls (route_list_to_control_list (rl, &Stripable::monitoring_control), (double) mc, Controllable::NoGroup);
        } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
-               if (_route->route_group() && _route->route_group()->is_monitoring()) {
-                       rl = _route->route_group()->route_list();
-               } else {
-                       rl.reset (new RouteList);
-                       rl->push_back (route());
-               }
+               /* Primary-click overrides group */
+               rl.reset (new RouteList);
+               rl->push_back (route());
+               _session->set_controls (route_list_to_control_list (rl, &Stripable::monitoring_control), (double) mc, Controllable::InverseGroup);
        } else {
                rl.reset (new RouteList);
                rl->push_back (route());
+               _session->set_controls (route_list_to_control_list (rl, &Stripable::monitoring_control), (double) mc, Controllable::UseGroup);
        }
 
-       _session->set_controls (route_list_to_control_list (rl, &Stripable::monitoring_control), (double) mc, Controllable::UseGroup);
-
        return false;
 }