summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_playlist.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-06-27 04:35:16 +1000
committernick_m <mainsbridge@gmail.com>2016-07-10 02:18:37 +1000
commit4acd365e425869ddb6ed15bc51aa355a3bd7f76f (patch)
treeedeef4142de132c098008079ff5dc4a9f4da5c99 /libs/ardour/audio_playlist.cc
parent3ee7972069f577d33b06ce2266d1cef5933a0150 (diff)
AudioPlaylist doesn't double-notify that contents have changed if bounds have changed.
Diffstat (limited to 'libs/ardour/audio_playlist.cc')
-rw-r--r--libs/ardour/audio_playlist.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/libs/ardour/audio_playlist.cc b/libs/ardour/audio_playlist.cc
index b70771fc15..80ec1cb5f1 100644
--- a/libs/ardour/audio_playlist.cc
+++ b/libs/ardour/audio_playlist.cc
@@ -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 ();
}