summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-06-28 14:59:38 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-06-28 14:59:38 +0000
commit0be7d224f49c191db952003eba6ce0dd3ba59fd3 (patch)
treea79fb80ef144cc6b32d02a4b69e12b12771aeb97 /libs/ardour/playlist.cc
parent74745856d6dbaa2fd7c7e78662cdc4bc3a98422d (diff)
clear region history in Playlist::notify_region_added() so that it has no apparent history before being added to the Playlist.
git-svn-id: svn://localhost/ardour2/branches/3.0@7311 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r--libs/ardour/playlist.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc
index fe70766e82..cc9dc62ec7 100644
--- a/libs/ardour/playlist.cc
+++ b/libs/ardour/playlist.cc
@@ -552,6 +552,7 @@ Playlist::notify_region_added (boost::shared_ptr<Region> r)
pending_contents_change = true;
pending_length = true;
} else {
+ r->clear_history ();
pending_length = false;
LengthChanged (); /* EMIT SIGNAL */
pending_contents_change = false;
@@ -620,7 +621,10 @@ Playlist::flush_notifications ()
for (s = pending_adds.begin(); s != pending_adds.end(); ++s) {
// cerr << _name << " sends RegionAdded\n";
- RegionAdded (boost::weak_ptr<Region> (*s)); /* EMIT SIGNAL */
+ /* don't emit RegionAdded signal until relayering is done,
+ so that the region is fully setup by the time
+ anyone hear's that its been added
+ */
dependent_checks_needed.insert (*s);
}
@@ -647,6 +651,11 @@ Playlist::flush_notifications ()
// cerr << _name << "done contents change @ " << get_microseconds() << endl;
}
+ for (s = pending_adds.begin(); s != pending_adds.end(); ++s) {
+ (*s)->clear_history ();
+ RegionAdded (boost::weak_ptr<Region> (*s)); /* EMIT SIGNAL */
+ }
+
for (s = dependent_checks_needed.begin(); s != dependent_checks_needed.end(); ++s) {
check_dependents (*s, false);
}