diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-02-05 21:39:38 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-02-05 21:39:38 +0000 |
commit | 7dd6b4c9157e4415d625cef1ac177af1ebf161bf (patch) | |
tree | 7f4de0d91c1d4b615bead185f980be216af74a44 /gtk2_ardour/route_ui.cc | |
parent | ca697ee768cc61c1dd31256c8bd6c49d845af2da (diff) |
more consistency for mute/solo/rec-enable press including making ctrl-click work even if the route is not part of a group
git-svn-id: svn://localhost/ardour2/branches/3.0@14054 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/route_ui.cc')
-rw-r--r-- | gtk2_ardour/route_ui.cc | 63 |
1 files changed, 48 insertions, 15 deletions
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 8c9e283523..b10906192b 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -327,10 +327,9 @@ RouteUI::mute_press (GdkEventButton* ev) * on a copy. */ - boost::shared_ptr<RouteList> rl = _session->get_routes (); boost::shared_ptr<RouteList> copy (new RouteList); - *copy = *rl; + *copy = *_session->get_routes (); for (RouteList::iterator i = copy->begin(); i != copy->end(); ) { if ((*i)->is_master() || (*i)->is_monitor()) { @@ -352,13 +351,20 @@ RouteUI::mute_press (GdkEventButton* ev) NOTE: Primary-button2 is MIDI learn. */ + boost::shared_ptr<RouteList> rl; - if (ev->button == 1 && _route->route_group()) { + if (ev->button == 1) { - boost::shared_ptr<RouteList> rl = _route->route_group()->route_list(); - - if (_mute_release) { - _mute_release->routes = rl; + if (_route->route_group()) { + + rl = _route->route_group()->route_list(); + + if (_mute_release) { + _mute_release->routes = rl; + } + } else { + rl.reset (new RouteList); + rl->push_back (_route); } _session->set_mute (rl, !_route->muted(), Session::rt_cleanup, true); @@ -370,7 +376,7 @@ RouteUI::mute_press (GdkEventButton* ev) boost::shared_ptr<RouteList> rl (new RouteList); rl->push_back (_route); - + if (_mute_release) { _mute_release->routes = rl; } @@ -493,16 +499,30 @@ RouteUI::solo_press(GdkEventButton* ev) NOTE: Primary-button2 is MIDI learn. */ - if (ev->button == 1 && _route->route_group()) { + /* Primary-button1 applies change to the mix group even if it is not active + NOTE: Primary-button2 is MIDI learn. + */ + + boost::shared_ptr<RouteList> rl; + + if (ev->button == 1) { - if (_solo_release) { - _solo_release->routes = _route->route_group()->route_list(); + if (_route->route_group()) { + + rl = _route->route_group()->route_list(); + + if (_solo_release) { + _solo_release->routes = rl; + } + } else { + rl.reset (new RouteList); + rl->push_back (_route); } if (Config->get_solo_control_is_listen_control()) { - _session->set_listen (_route->route_group()->route_list(), !_route->listening_via_monitor(), Session::rt_cleanup, true); + _session->set_listen (rl, !_route->listening_via_monitor(), Session::rt_cleanup, true); } else { - _session->set_solo (_route->route_group()->route_list(), !_route->self_soloed(), Session::rt_cleanup, true); + _session->set_solo (rl, !_route->self_soloed(), Session::rt_cleanup, true); } } @@ -594,8 +614,21 @@ RouteUI::rec_enable_press(GdkEventButton* ev) /* Primary-button1 applies change to the route group (even if it is not active) NOTE: Primary-button2 is MIDI learn. */ - if (ev->button == 1 && _route->route_group()) { - _session->set_record_enabled (_route->route_group()->route_list(), !rec_enable_button->active_state(), Session::rt_cleanup, true); + + if (ev->button == 1) { + + boost::shared_ptr<RouteList> rl; + + if (_route->route_group()) { + + rl = _route->route_group()->route_list(); + + } else { + rl.reset (new RouteList); + rl->push_back (_route); + } + + _session->set_record_enabled (rl, !rec_enable_button->active_state(), Session::rt_cleanup, true); } } else if (Keyboard::is_context_menu_event (ev)) { |