summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_drag.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-06-05 15:16:55 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2014-06-05 15:16:55 -0400
commitad346dc638c1b87af571cb8a920c0d7151da5a94 (patch)
tree857775ba46bb24e6958a351f7007884eaab1afc3 /gtk2_ardour/editor_drag.cc
parentef9bf58359e8331f9495242a7d4a02e785931a4a (diff)
reinstate a canvas group where we reparent regions while dragging, so that they are always on top.
I mistakenly removed this during the onecanvas changes.
Diffstat (limited to 'gtk2_ardour/editor_drag.cc')
-rw-r--r--gtk2_ardour/editor_drag.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 7004f9b419..2cea513c1a 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -704,7 +704,16 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move)
if (first_move) {
rv->drag_start ();
rv->fake_set_opaque (true);
- rv->raise_to_top ();
+
+ /* reparent the regionview into a group above all
+ * others
+ */
+
+ ArdourCanvas::Group* rvg = rv->get_canvas_group();
+ Duple rv_canvas_offset = rvg->parent()->item_to_canvas (Duple (0,0));
+ Duple dmg_canvas_offset = _editor->_drag_motion_group->item_to_canvas (Duple (0,0));
+ rv->get_canvas_group()->reparent (_editor->_drag_motion_group);
+ rvg->move (rv_canvas_offset - dmg_canvas_offset);
}
/* If we have moved tracks, we'll fudge the layer delta so that the