diff options
author | Carl Hetherington <carl@carlh.net> | 2010-05-24 14:45:10 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-05-24 14:45:10 +0000 |
commit | a4664d68c031c77c5e436fe97a92005b7d2019d8 (patch) | |
tree | 594a6df54752cff2ed452204bf0a00c722d0f04d /gtk2_ardour/midi_region_view.cc | |
parent | 88f13bbe33f8cb24fc571eb65538ad8896d272e0 (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.cc | 13 |
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; } |