summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/surfaces/mackie/mcp_buttons.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc
index 004fe18859..83dae4c0dd 100644
--- a/libs/surfaces/mackie/mcp_buttons.cc
+++ b/libs/surfaces/mackie/mcp_buttons.cc
@@ -863,8 +863,16 @@ Mackie::LedState
MackieControlProtocol::clearsolo_press (Mackie::Button&)
{
// clears all solos and listens (pfl/afl)
- session->set_solo (session->get_routes(), false);
- session->set_listen (session->get_routes(), false);
+
+ if (session) {
+ if (session->soloing()) {
+ session->set_solo (session->get_routes(), false);
+ } else if (session->listening()) {
+ session->set_listen (session->get_routes(), false);
+ }
+
+ session->clear_all_solo_state (session->get_routes()); // safeguard, ideally this won't do anything, check the log-window
+ }
return none;
}