diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-03-07 11:22:49 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-03-07 11:22:49 -0500 |
commit | 0ef3fedf9aa59992a134dfde6f387efd96d3d74f (patch) | |
tree | 512dc243222360e6637e5ee84f20d6201a19eec5 /gtk2_ardour | |
parent | 770dbf8fdcbf25aa99a51edce739e07dfff1b1f6 (diff) |
fix up some logic that allowed hits (percussive note display) to be trimmed with the mouse, which was not intended
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_mouse.cc | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 9508b2abf5..87a37d7f2d 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -925,17 +925,18 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT case MouseDraw: switch (item_type) { case NoteItem: + /* Existing note: allow trimming/motion */ if (internal_editing()) { /* trim notes if we're in internal edit mode and near the ends of the note */ NoteBase* cn = reinterpret_cast<NoteBase*>(item->get_data ("notebase")); assert (cn); - if (cn && cn->big_enough_to_trim() && cn->mouse_near_ends()) { + if (cn->big_enough_to_trim() && cn->mouse_near_ends()) { _drags->set (new NoteResizeDrag (this, item), event, current_canvas_cursor); } else { _drags->set (new NoteDrag (this, item), event); } return true; - } + } break; case StreamItem: if (internal_editing()) { @@ -954,10 +955,11 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT case MouseObject: switch (item_type) { case NoteItem: + /* Existing note: allow trimming/motion */ if (internal_editing()) { NoteBase* cn = reinterpret_cast<NoteBase*> (item->get_data ("notebase")); assert (cn); - if (cn->mouse_near_ends()) { + if (cn->big_enough_to_trim() && cn->mouse_near_ends()) { _drags->set (new NoteResizeDrag (this, item), event, current_canvas_cursor); } else { _drags->set (new NoteDrag (this, item), event); @@ -1205,9 +1207,13 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT break; case MouseTimeFX: - if (internal_editing() && item_type == NoteItem) { + if (internal_editing() && item_type == NoteItem ) { /* drag notes if we're in internal edit mode */ - _drags->set (new NoteResizeDrag (this, item), event, current_canvas_cursor); + NoteBase* cn = reinterpret_cast<NoteBase*>(item->get_data ("notebase")); + assert (cn); + if (cn->big_enough_to_trim()) { + _drags->set (new NoteResizeDrag (this, item), event, current_canvas_cursor); + } return true; } else if (clicked_regionview) { /* do time-FX */ |