mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-10 08:36:32 +01:00
Introduce Ctrl+Shift+Click on lock solo in the mixer.
This commit is contained in:
parent
1536228d00
commit
42647c9920
1 changed files with 31 additions and 2 deletions
|
|
@ -1452,9 +1452,38 @@ RouteUI::solo_isolate_button_release (GdkEventButton* ev)
|
||||||
bool
|
bool
|
||||||
RouteUI::solo_safe_button_release (GdkEventButton* ev)
|
RouteUI::solo_safe_button_release (GdkEventButton* ev)
|
||||||
{
|
{
|
||||||
if (ev->button == 1) {
|
if (ev->type == GDK_2BUTTON_PRESS || ev->type == GDK_3BUTTON_PRESS) {
|
||||||
_route->set_solo_safe (!solo_safe_led->active_state(), this);
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool view = solo_safe_led->active_state();
|
||||||
|
bool model = _route->solo_safe();
|
||||||
|
|
||||||
|
if (ev->button == 1) {
|
||||||
|
if (Keyboard::modifier_state_equals (ev->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier))) {
|
||||||
|
boost::shared_ptr<RouteList> rl (_session->get_routes());
|
||||||
|
if (model) {
|
||||||
|
/* disable solo safe for all routes */
|
||||||
|
DisplaySuspender ds;
|
||||||
|
for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
|
||||||
|
(*i)->set_solo_safe (false, this);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* enable solo safe for all routes */
|
||||||
|
DisplaySuspender ds;
|
||||||
|
for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
|
||||||
|
(*i)->set_solo_safe (true, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (model == view) {
|
||||||
|
/* flip just this route */
|
||||||
|
_route->set_solo_safe (!view, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue