diff options
author | Nick Mainsbridge <beatroute@iprimus.com.au> | 2006-11-30 14:21:02 +0000 |
---|---|---|
committer | Nick Mainsbridge <beatroute@iprimus.com.au> | 2006-11-30 14:21:02 +0000 |
commit | 9cca1464a8b031cfb26e541b6ca2d242e3df7c81 (patch) | |
tree | 65d614645ba85a596bd11296a1cf9c732b3ff9bf /libs/ardour/playlist.cc | |
parent | e002eea388f9850cc5d416c70a87ffae1929b1f7 (diff) |
always check_dependents() after a relayer() (useful for LaterHigher model), don't create end crossfades for external overlaps unless they are at the top layer
git-svn-id: svn://localhost/ardour2/trunk@1172 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/playlist.cc')
-rw-r--r-- | libs/ardour/playlist.cc | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index a06fe2b5fd..e748b44824 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -404,12 +404,8 @@ Playlist::flush_notifications () timestamp_layer_op (*r); } pending_length = true; - n++; - } - - for (RegionList::iterator r = pending_bounds.begin(); r != pending_bounds.end(); ++r) { dependent_checks_needed.insert (*r); - /* don't increment n again - its the same list */ + n++; } for (s = pending_adds.begin(); s != pending_adds.end(); ++s) { @@ -417,10 +413,6 @@ Playlist::flush_notifications () n++; } - for (s = dependent_checks_needed.begin(); s != dependent_checks_needed.end(); ++s) { - check_dependents (*s, false); - } - for (s = pending_removes.begin(); s != pending_removes.end(); ++s) { remove_dependents (*s); n++; @@ -441,6 +433,10 @@ Playlist::flush_notifications () Modified (); /* EMIT SIGNAL */ } + for (s = dependent_checks_needed.begin(); s != dependent_checks_needed.end(); ++s) { + check_dependents (*s, false); + } + pending_adds.clear (); pending_removes.clear (); pending_bounds.clear (); @@ -1111,7 +1107,6 @@ Playlist::region_bounds_changed (Change what_changed, boost::shared_ptr<Region> } if (what_changed & Change (ARDOUR::PositionChanged|ARDOUR::LengthChanged)) { - if (holding_state ()) { pending_bounds.push_back (region); } else { @@ -1121,9 +1116,9 @@ Playlist::region_bounds_changed (Change what_changed, boost::shared_ptr<Region> } possibly_splice (); - check_dependents (region, false); notify_length_changed (); relayer (); + check_dependents (region, false); } } } |