extend use-selection concept to solo control on mixer strip

This commit is contained in:
Paul Davis 2023-07-26 18:09:26 -06:00
parent e60c1840cb
commit 5497c4e74e
1 changed files with 16 additions and 1 deletions

View File

@ -733,7 +733,22 @@ RouteUI::solo_press(GdkEventButton* ev)
/* click: solo this route */
std::shared_ptr<RouteList> rl (new RouteList);
rl->push_back (route());
if (route() && (!route()->is_selected() || (route()->route_group() && route()->route_group()->is_solo()))) {
/* Not selected or part of a group that share solo, just start with this route */
rl->push_back (route());
} else {
TrackSelection& selected_tracks (ARDOUR_UI::instance()->the_editor().get_selection().tracks);
for (auto & st : selected_tracks) {
RouteTimeAxisView* rtv;
RouteUI* rui;
if ((rtv = dynamic_cast<RouteTimeAxisView*>(st)) != 0) {
if ((rui = dynamic_cast<RouteUI*>(rtv)) != 0) {
rl->push_back (rui->route());
}
}
}
}
if (_solo_release) {
_solo_release->set (rl);