Slight improvement to autoscroll behaviour when expanding tracks.
authorCarl Hetherington <carl@carlh.net>
Thu, 11 Nov 2010 13:36:20 +0000 (13:36 +0000)
committerCarl Hetherington <carl@carlh.net>
Thu, 11 Nov 2010 13:36:20 +0000 (13:36 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8008 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor_canvas.cc
gtk2_ardour/public_editor.h
gtk2_ardour/time_axis_view.cc

index c49885524b1d072cab79a5667536ab68f1624f2a..33efcbdc5a4541af7646405b65537338d55e1140 100644 (file)
@@ -544,7 +544,7 @@ Editor::maybe_autoscroll (bool allow_horiz, bool allow_vert)
        framepos_t rightmost_frame = leftmost_frame + current_page_frames();
        bool startit = false;
 
-       double ty = _drags->current_pointer_y() - get_trackview_group_vertical_offset ();
+       double const ty = _drags->current_pointer_y() - get_trackview_group_vertical_offset ();
 
        autoscroll_y = 0;
        autoscroll_x = 0;
index fa27f5c45ce2e2210851c39aa17ecbd5e2541619..341b023c122582ca3fc20b3addb1025bce942f28 100644 (file)
@@ -352,9 +352,9 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible {
 #endif
 
        virtual gdouble get_trackview_group_vertical_offset () const = 0;
-       virtual gdouble get_canvas_timebars_vsize () const = 0;
-       virtual ArdourCanvas::Group* get_background_group () const = 0;
+       virtual double get_canvas_timebars_vsize () const = 0;
        virtual ArdourCanvas::Group* get_trackview_group () const = 0;
+       virtual ArdourCanvas::Group* get_background_group () const = 0;
 
        virtual TimeAxisView* axis_view_from_route (boost::shared_ptr<ARDOUR::Route>) const = 0;
 
index 20227839287c6a65629b37cbacff34cac8ae20e3..b93831f69f0c3df278dff9bdb0ce3495d2343409 100644 (file)
@@ -1230,14 +1230,14 @@ TimeAxisView::resizer_motion (GdkEventMotion* ev)
 {
        if (_resize_drag_start >= 0) {
                /* (ab)use the DragManager to do autoscrolling; adjust the event coordinates
-                  into the trackview space that DragManager::motion_handler is expecting,
+                  into the world coordinate space that DragManager::motion_handler is expecting,
                   and then fake a DragManager motion event so that when maybe_autoscroll
                   asks DragManager for the current pointer position it will get the correct
                   answers.
                */
                int tx, ty;
                resizer.translate_coordinates (*control_parent, ev->x, ev->y, tx, ty);
-               ev->y = ty + _editor.get_canvas_timebars_vsize ();
+               ev->y = ty - _editor.get_trackview_group_vertical_offset();
                _editor.drags()->motion_handler ((GdkEvent *) ev, false);
                _editor.maybe_autoscroll (false, true);