summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-05-24 14:45:10 +0000
committerCarl Hetherington <carl@carlh.net>2010-05-24 14:45:10 +0000
commita4664d68c031c77c5e436fe97a92005b7d2019d8 (patch)
tree594a6df54752cff2ed452204bf0a00c722d0f04d /gtk2_ardour/midi_region_view.cc
parent88f13bbe33f8cb24fc571eb65538ad8896d272e0 (diff)
Prevent note creation drags with no movement of the pointer. May fix #3159.
git-svn-id: svn://localhost/ardour2/branches/3.0@7146 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_region_view.cc')
-rw-r--r--gtk2_ardour/midi_region_view.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index d81c0d76d9..d904305146 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -347,6 +347,10 @@ MidiRegionView::canvas_event(GdkEvent* ev)
return false;
case GDK_BUTTON_PRESS:
+ last_x = ev->button.x;
+ last_y = ev->button.y;
+ group->w2i (last_x, last_y);
+
if (_mouse_state != SelectTouchDragging && ev->button.button == 1) {
_pressed_button = ev->button.button;
_mouse_state = Pressed;
@@ -376,7 +380,12 @@ MidiRegionView::canvas_event(GdkEvent* ev)
event_frame -= _region->position();
switch (_mouse_state) {
- case Pressed: // Drag start
+ case Pressed: // Maybe start a drag, if we've moved a bit
+
+ if (fabs (event_x - last_x) < 1 && fabs (event_y - last_y) < 1) {
+ /* no appreciable movement since the button was pressed */
+ return false;
+ }
// Select drag start
if (_pressed_button == 1 && editor.current_mouse_mode() == MouseObject) {
@@ -496,7 +505,7 @@ MidiRegionView::canvas_event(GdkEvent* ev)
if (!success) {
beats = 1;
}
-
+
create_note_at (event_x, event_y, beats);
break;
}