diff options
Diffstat (limited to 'gtk2_ardour/editor_drag.cc')
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 63b22bcc14..5ed00274dc 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -1529,6 +1529,7 @@ RegionMoveDrag::finished_no_copy ( typedef map<boost::shared_ptr<Playlist>, RouteTimeAxisView*> PlaylistMapping; PlaylistMapping playlist_mapping; + std::set<boost::shared_ptr<const Region> > uniq; for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ) { RegionView* rv = i->view; @@ -1539,6 +1540,13 @@ RegionMoveDrag::finished_no_copy ( continue; } + if (uniq.find (rv->region()) != uniq.end()) { + /* prevent duplicate moves when selecting regions from shared playlists */ + ++i; + continue; + } + uniq.insert(rv->region()); + if (i->time_axis_view < 0 || i->time_axis_view >= (int)_time_axis_views.size()) { /* dragged to drop zone */ |