fix crash when copy'ing latent plugins
[ardour.git] / libs / ardour / solo_control.cc
index 9cf3c205994068240588ecc479f6f8cfb3e5cc76..c31644b02665f57005e78d73b7c1945621507785 100644 (file)
@@ -21,7 +21,7 @@
 #include "ardour/session.h"
 #include "ardour/solo_control.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace ARDOUR;
 using namespace std;
@@ -256,15 +256,22 @@ SoloControl::master_changed (bool /*from self*/, GroupControlDisposition, boost:
 
        _transition_into_solo = 0;
 
+       /* Notice that we call get_boolean_masters() BEFORE we call
+        * update_boolean_masters_records(), in order to know what
+        * our master state was BEFORE it gets changed.
+        */
+
 
        if (m->get_value()) {
                /* this master is now enabled */
                if (!self_soloed() && get_boolean_masters() == 0) {
+                       /* not self-soloed, wasn't soloed by masters before */
                        send_signal = true;
                        _transition_into_solo = 1;
                }
        } else {
                if (!self_soloed() && get_boolean_masters() == 1) {
+                       /* not self-soloed, soloed by just 1 master before */
                        _transition_into_solo = -1;
                        send_signal = true;
                }