diff options
author | Carl Hetherington <carl@carlh.net> | 2010-01-05 15:51:13 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-01-05 15:51:13 +0000 |
commit | 46534f2f59b2322891a8ef8f74e38605580a0758 (patch) | |
tree | 8dd126d4daff22116595d6461408b6fdae07f406 | |
parent | 27eb926d3fe86517fb83af19ae5c3acc737a677b (diff) |
Refix yesterday's patch; ignore motion events that haven't moved anywhere, and don't try to autoscroll vertically when dragging range markers.
git-svn-id: svn://localhost/ardour2/branches/3.0@6457 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/editor_drag.h | 4 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index d3ada92ff7..6345d8fd28 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -189,10 +189,16 @@ Drag::motion_handler (GdkEvent* event, bool from_autoscroll) _last_pointer_frame = adjusted_current_frame (event); _current_pointer_frame = _editor->event_frame (event, &_current_pointer_x, &_current_pointer_y); + /* check to see if we have moved in any way that matters since the last motion event */ + if ( (!x_movement_matters() || _last_pointer_frame == adjusted_current_frame (event)) && + (!y_movement_matters() || _last_pointer_y == _current_pointer_y) ) { + return false; + } + pair<nframes64_t, int> const threshold = move_threshold (); bool const old_move_threshold_passed = _move_threshold_passed; - + if (!from_autoscroll && !_move_threshold_passed) { bool const xp = (::llabs (adjusted_current_frame (event) - _grab_frame) >= threshold.first); diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h index 5d8cf39090..bfca141c67 100644 --- a/gtk2_ardour/editor_drag.h +++ b/gtk2_ardour/editor_drag.h @@ -613,6 +613,10 @@ public: void motion (GdkEvent *, bool); void finished (GdkEvent *, bool); + bool allow_vertical_autoscroll () const { + return false; + } + bool y_movement_matters () const { return false; } |