diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-02-05 17:42:34 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-02-05 17:42:46 -0500 |
commit | 7ffc06b08dccdb86498c5a48da3158fcaf923e8b (patch) | |
tree | 2fdc0f5bf4659248e84f9cdab7882cdd45c7e36c | |
parent | c76523aeaa72672c025943f545f702ceefb56dbc (diff) |
fix issue with region dragging while mouse pointer is in rulers/marker lanes
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 1f13c68d74..f34b94e989 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -708,6 +708,9 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move) for (list<DraggingView>::iterator i = _views.begin(); i != _views.end(); ++i) { RegionView* rv = i->view; + double y_delta; + + y_delta = 0; if (rv->region()->locked() || rv->region()->video_locked()) { continue; @@ -727,7 +730,7 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move) /* move the item so that it continues to appear at the same location now that its parent has changed. */ - rvg->move (rv_canvas_offset - dmg_canvas_offset); + rvg->move (rv_canvas_offset - dmg_canvas_offset); } /* If we have moved tracks, we'll fudge the layer delta so that the @@ -749,7 +752,7 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move) } else { track_index = _time_axis_views.size() - 1 + delta_time_axis_view; } - + if (track_index < 0 || track_index >= (int) _time_axis_views.size()) { continue; } @@ -809,10 +812,12 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move) * equivalent coordinate space as the trackview * we are now dragging over. */ + + y_delta = track_origin.y - rv->get_canvas_group()->canvas_origin().y; - /* Now move the region view */ - rv->move (x_delta, track_origin.y - rv->get_canvas_group()->canvas_origin().y); } + + } else { /* Only move the region into the empty dropzone at the bottom if the pointer @@ -829,11 +834,14 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move) last_track_bottom_edge = 0; } - rv->move (x_delta, last_track_bottom_edge - rv->get_canvas_group()->canvas_origin().y); + y_delta = last_track_bottom_edge - rv->get_canvas_group()->canvas_origin().y; i->time_axis_view = -1; } } + /* Now move the region view */ + rv->move (x_delta, y_delta); + } /* foreach region */ _total_x_delta += x_delta; |