summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r--libs/ardour/playlist.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc
index 417157f411..3cab0ef4aa 100644
--- a/libs/ardour/playlist.cc
+++ b/libs/ardour/playlist.cc
@@ -1772,14 +1772,18 @@ Playlist::region_changed (const PropertyChange& what_changed, boost::shared_ptr<
our_interests.add (Properties::muted);
our_interests.add (Properties::layer);
our_interests.add (Properties::opaque);
+ our_interests.add (Properties::contents);
bounds.add (Properties::start);
bounds.add (Properties::position);
bounds.add (Properties::length);
+ bool send_contents = false;
+
if (what_changed.contains (bounds)) {
region_bounds_changed (what_changed, region);
save = !(_splicing || _nudging);
+ send_contents = true;
}
if (what_changed.contains (Properties::position) && !what_changed.contains (Properties::length)) {
@@ -1788,8 +1792,6 @@ Playlist::region_changed (const PropertyChange& what_changed, boost::shared_ptr<
notify_region_end_trimmed (region);
} else if (what_changed.contains (Properties::position) && what_changed.contains (Properties::length)) {
notify_region_start_trimmed (region);
- } else if (what_changed.contains (Properties::start)) {
- notify_contents_changed ();
}
/* don't notify about layer changes, since we are the only object that can initiate
@@ -1800,6 +1802,10 @@ Playlist::region_changed (const PropertyChange& what_changed, boost::shared_ptr<
save = true;
}
+ if (send_contents || save) {
+ notify_contents_changed ();
+ }
+
mark_session_dirty ();
return save;