Fix disassociate all to only disassociate if required.
authorCarl Hetherington <carl@carlh.net>
Tue, 10 Feb 2009 00:49:48 +0000 (00:49 +0000)
committerCarl Hetherington <carl@carlh.net>
Tue, 10 Feb 2009 00:49:48 +0000 (00:49 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@4512 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/port_matrix.cc

index 2ca3c7cd76e60485cebac98231332d22a6b45371..4fde95b8273b8be932b71486704a94ff63105ce6 100644 (file)
@@ -282,7 +282,7 @@ PortMatrix::disassociate_all ()
 {
        ARDOUR::BundleList a = _ports[0].bundles ();
        ARDOUR::BundleList b = _ports[1].bundles ();
-       
+
        for (ARDOUR::BundleList::iterator i = a.begin(); i != a.end(); ++i) {
                for (uint32_t j = 0; j < (*i)->nchannels(); ++j) {
                        for (ARDOUR::BundleList::iterator k = b.begin(); k != b.end(); ++k) {
@@ -292,8 +292,10 @@ PortMatrix::disassociate_all ()
                                                ARDOUR::BundleChannel (*i, j),
                                                ARDOUR::BundleChannel (*k, l)
                                                        };
-                                       
-                                       set_state (c, false);
+
+                                       if (get_state (c) == ASSOCIATED) {
+                                               set_state (c, false);
+                                       }
 
                                }
                        }