summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_drag.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-12-27 21:10:20 +0000
committerCarl Hetherington <carl@carlh.net>2011-12-27 21:10:20 +0000
commit9e785781f2057f0f3c1216cb20668842d4b22b24 (patch)
treed64ad6e4fa61d853866f6856e893894573a8d7e2 /gtk2_ardour/editor_drag.cc
parentf440f91849a807e9026d79c06075bbd15852cbf6 (diff)
Fix another bug wrt visual appearance of layered regions in
overlaid mode. git-svn-id: svn://localhost/ardour2/branches/3.0@11098 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_drag.cc')
-rw-r--r--gtk2_ardour/editor_drag.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index bb59a4ad24..2d6c98b373 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -964,6 +964,7 @@ RegionMoveDrag::finished_no_copy (
list<pair<boost::shared_ptr<Region>, double> > pending_explicit_relayers;
Playlist::RegionList pending_implicit_relayers;
+ set<RouteTimeAxisView*> views_to_update;
if (_brushing) {
/* all changes were made during motion event handlers */
@@ -989,6 +990,8 @@ RegionMoveDrag::finished_no_copy (
continue;
}
+ views_to_update.insert (dest_rtv);
+
framepos_t where;
if (changed_position && !_x_constrained) {
@@ -1134,6 +1137,17 @@ RegionMoveDrag::finished_no_copy (
add_stateful_diff_commands_for_playlists (modified_playlists);
_editor->commit_reversible_command ();
+
+ /* We have futzed with the layering of canvas items on our streamviews.
+ If any region changed layer, this will have resulted in the stream
+ views being asked to set up their region views, and all will be
+ well. If not, we might now have badly-ordered region views. Ask
+ the Streamviews involved to sort themselves out, just in case.
+ */
+
+ for (set<RouteTimeAxisView*>::iterator i = views_to_update.begin(); i != views_to_update.end(); ++i) {
+ (*i)->view()->playlist_layered ((*i)->track ());
+ }
}
/** Remove a region from a playlist, clearing the diff history of the playlist first if necessary.