fix issue with region dragging while mouse pointer is in rulers/marker lanes
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 5 Feb 2015 22:42:34 +0000 (17:42 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 5 Feb 2015 22:42:46 +0000 (17:42 -0500)
gtk2_ardour/editor_drag.cc

index 1f13c68d743041ad5a821615083e305d0bfb82e9..f34b94e98905e9735ff2dc2ee03dc9f14adeec6a 100644 (file)
@@ -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;