summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-10-18 17:21:51 -0600
committerPaul Davis <paul@linuxaudiosystems.com>2019-11-02 16:32:18 -0600
commitb83ef099475c949ae37788ccb550067674c8210f (patch)
tree2d090eac0779e4147cee87288a32971522d2627f /libs/ardour/playlist.cc
parent6128d1759c8659f00d21a9d80bd555837bc5b4f2 (diff)
various adjustments so that a MidiPlaylist gets re-rendered whenever it changes.
This may still be missing a few changes (i.e. they do not cause re-rendering)
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;