AudioPlaylist doesn't double-notify that contents have changed if bounds have changed.
authornick_m <mainsbridge@gmail.com>
Sun, 26 Jun 2016 18:35:16 +0000 (04:35 +1000)
committernick_m <mainsbridge@gmail.com>
Sat, 9 Jul 2016 16:18:37 +0000 (02:18 +1000)
libs/ardour/audio_playlist.cc

index b70771fc150745ea835c427cc493d7964e16a06d..80ec1cb5f13bf20c9c85f2b966203bd1f3ca9c73 100644 (file)
@@ -335,6 +335,11 @@ AudioPlaylist::region_changed (const PropertyChange& what_changed, boost::shared
                return false;
        }
 
+       PropertyChange bounds;
+       bounds.add (Properties::start);
+       bounds.add (Properties::position);
+       bounds.add (Properties::length);
+
        PropertyChange our_interests;
 
        our_interests.add (Properties::fade_in_active);
@@ -348,8 +353,8 @@ AudioPlaylist::region_changed (const PropertyChange& what_changed, boost::shared
        bool parent_wants_notify;
 
        parent_wants_notify = Playlist::region_changed (what_changed, region);
-
-       if (parent_wants_notify || (what_changed.contains (our_interests))) {
+       /* if bounds changed, we have already done notify_contents_changed ()*/
+       if ((parent_wants_notify || what_changed.contains (our_interests)) && !what_changed.contains (bounds)) {
                notify_contents_changed ();
        }