diff options
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r-- | libs/ardour/playlist.cc | 10 |
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; |