mark session dirty when markers/ranges are changed
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 8 May 2015 16:20:25 +0000 (12:20 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 29 Jun 2015 18:18:10 +0000 (14:18 -0400)
libs/ardour/session.cc

index b1b0b1e1b54d62fa8d9d1c417d229c89923c1664..b24ad53b376ba1cba4de7dba8f5d545246cb7dc2 100644 (file)
@@ -1604,6 +1604,15 @@ Session::location_added (Location *location)
                 _session_range_location = location;
         }
 
+        if (location->is_mark()) {
+                /* listen for per-location signals that require us to do any * global updates for marks */
+
+                location->StartChanged.connect_same_thread (skip_update_connections, boost::bind (&Session::update_marks, this, location));
+                location->EndChanged.connect_same_thread (skip_update_connections, boost::bind (&Session::update_marks, this, location));
+                location->Changed.connect_same_thread (skip_update_connections, boost::bind (&Session::update_marks, this, location));
+                location->FlagsChanged.connect_same_thread (skip_update_connections, boost::bind (&Session::update_marks, this, location));
+        }
+
         if (location->is_skip()) {
                 /* listen for per-location signals that require us to update skip-locate events */
 
@@ -1614,7 +1623,7 @@ Session::location_added (Location *location)
 
                 update_skips (location, true);
         }
-
+        
        set_dirty ();
 }