summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_routes.cc10
-rw-r--r--gtk2_ardour/route_ui.cc20
2 files changed, 5 insertions, 25 deletions
diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc
index 9a2153f99f..7daeea3d7c 100644
--- a/gtk2_ardour/editor_routes.cc
+++ b/gtk2_ardour/editor_routes.cc
@@ -468,15 +468,7 @@ EditorRoutes::on_tv_solo_enable_toggled (std::string const & path_string)
RouteTimeAxisView* rtv = dynamic_cast<RouteTimeAxisView*> (tv);
if (rtv != 0) {
- bool newval;
-
- if (Config->get_solo_control_is_listen_control()) {
- newval = !rtv->route()->listening_via_monitor();
- } else {
- newval = !rtv->route()->self_soloed();
- }
-
- rtv->route()->solo_control()->set_value (newval ? 1.0 : 0.0, Controllable::UseGroup);
+ rtv->route()->solo_control()->set_value (rtv->route()->soloed() ? 0.0 : 1.0, Controllable::UseGroup);
}
}
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index bfd3ed1006..126e3af996 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -1120,22 +1120,10 @@ RouteUI::solo_active_state (boost::shared_ptr<Route> r)
return Gtkmm2ext::Off;
}
- if (Config->get_solo_control_is_listen_control()) {
-
- if (r->listening_via_monitor()) {
- return Gtkmm2ext::ExplicitActive;
- } else {
- return Gtkmm2ext::Off;
- }
-
- }
-
- if (r->soloed()) {
- if (!r->self_soloed()) {
- return Gtkmm2ext::ImplicitActive;
- } else {
- return Gtkmm2ext::ExplicitActive;
- }
+ if (r->self_soloed()) {
+ return Gtkmm2ext::ExplicitActive;
+ } else if (r->soloed_by_others()) {
+ return Gtkmm2ext::ImplicitActive;
} else {
return Gtkmm2ext::Off;
}