fix issue with region dragging while mouse pointer is in rulers/marker lanes
This commit is contained in:
parent
c76523aeaa
commit
7ffc06b08d
|
@ -708,6 +708,9 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move)
|
||||||
for (list<DraggingView>::iterator i = _views.begin(); i != _views.end(); ++i) {
|
for (list<DraggingView>::iterator i = _views.begin(); i != _views.end(); ++i) {
|
||||||
|
|
||||||
RegionView* rv = i->view;
|
RegionView* rv = i->view;
|
||||||
|
double y_delta;
|
||||||
|
|
||||||
|
y_delta = 0;
|
||||||
|
|
||||||
if (rv->region()->locked() || rv->region()->video_locked()) {
|
if (rv->region()->locked() || rv->region()->video_locked()) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -727,7 +730,7 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move)
|
||||||
/* move the item so that it continues to appear at the
|
/* move the item so that it continues to appear at the
|
||||||
same location now that its parent has changed.
|
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
|
/* 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 {
|
} else {
|
||||||
track_index = _time_axis_views.size() - 1 + delta_time_axis_view;
|
track_index = _time_axis_views.size() - 1 + delta_time_axis_view;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (track_index < 0 || track_index >= (int) _time_axis_views.size()) {
|
if (track_index < 0 || track_index >= (int) _time_axis_views.size()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -809,10 +812,12 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move)
|
||||||
* equivalent coordinate space as the trackview
|
* equivalent coordinate space as the trackview
|
||||||
* we are now dragging over.
|
* 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 {
|
} else {
|
||||||
|
|
||||||
/* Only move the region into the empty dropzone at the bottom if the pointer
|
/* 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;
|
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;
|
i->time_axis_view = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Now move the region view */
|
||||||
|
rv->move (x_delta, y_delta);
|
||||||
|
|
||||||
} /* foreach region */
|
} /* foreach region */
|
||||||
|
|
||||||
_total_x_delta += x_delta;
|
_total_x_delta += x_delta;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user