lots of odds and ends to do with solo isolate and its GUI
[ardour.git] / libs / ardour / route.cc
index 48eeae77743127db6ef30bfab25ddfb55c4c59d5..e5a4b01fd1a3b0735c94b9dd6cbed3fef61f97c1 100644 (file)
@@ -716,22 +716,27 @@ Route::set_solo_isolated (bool yn, void *src)
 
         /* XXX should we back-propagate as well? (April 2010: myself and chris goddard think not) */
 
+        bool changed = false;
+
        if (yn) {
                 if (_solo_isolated == 0) {
                         _mute_master->set_solo_ignore (true);
+                        changed = true;
                 }
                _solo_isolated++;
-                solo_isolated_changed (src);
        } else {
                if (_solo_isolated > 0) {
                        _solo_isolated--;
                         if (_solo_isolated == 0) {
                                 _mute_master->set_solo_ignore (false);
+                                changed = true;
                         }
-                        solo_isolated_changed (src);
                }
        }
 
+        if (changed) {
+                solo_isolated_changed (src);
+        }
 }
 
 bool