diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-06-28 14:59:38 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-06-28 14:59:38 +0000 |
commit | 0be7d224f49c191db952003eba6ce0dd3ba59fd3 (patch) | |
tree | a79fb80ef144cc6b32d02a4b69e12b12771aeb97 /libs/ardour/playlist.cc | |
parent | 74745856d6dbaa2fd7c7e78662cdc4bc3a98422d (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.cc | 11 |
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); } |