diff options
-rw-r--r-- | gtk2_ardour/canvas-note-event.cc | 3 | ||||
-rw-r--r-- | gtk2_ardour/midi_region_view.cc | 42 | ||||
-rw-r--r-- | gtk2_ardour/midi_region_view.h | 3 |
3 files changed, 14 insertions, 34 deletions
diff --git a/gtk2_ardour/canvas-note-event.cc b/gtk2_ardour/canvas-note-event.cc index 88b6633dd3..77ef7b263f 100644 --- a/gtk2_ardour/canvas-note-event.cc +++ b/gtk2_ardour/canvas-note-event.cc @@ -287,8 +287,7 @@ CanvasNoteEvent::on_event(GdkEvent* ev) switch (_state) { case Pressed: // Drag begin if (midi_edit_mode == Editing::MidiEditSelect - && _region.mouse_state() != MidiRegionView::SelectTouchDragging - && _region.mouse_state() != MidiRegionView::EraseTouchDragging) { + && _region.mouse_state() != MidiRegionView::SelectTouchDragging) { _item->grab(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK, Gdk::Cursor(Gdk::FLEUR), ev->motion.time); _state = Dragging; diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 6ee71ab41f..3d633c133d 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -195,9 +195,6 @@ MidiRegionView::init (Gdk::Color& basic_color, bool wfd) bool MidiRegionView::canvas_event(GdkEvent* ev) { - static bool delete_mod = false; - static Editing::MidiEditMode original_mode; - static double drag_start_x, drag_start_y; static double last_x, last_y; double event_x, event_y; @@ -212,14 +209,7 @@ MidiRegionView::canvas_event(GdkEvent* ev) switch (ev->type) { case GDK_KEY_PRESS: - if (ev->key.keyval == GDK_Delete && !delete_mod) { - delete_mod = true; - original_mode = midi_edit_mode; - trackview.editor().set_midi_edit_mode(MidiEditErase); - start_delta_command(_("erase notes")); - _mouse_state = EraseTouchDragging; - return true; - } else if (ev->key.keyval == GDK_Shift_L || ev->key.keyval == GDK_Control_L) { + if (ev->key.keyval == GDK_Shift_L || ev->key.keyval == GDK_Control_L) { _mouse_state = SelectTouchDragging; return true; } else if (ev->key.keyval == GDK_Escape) { @@ -230,15 +220,8 @@ MidiRegionView::canvas_event(GdkEvent* ev) case GDK_KEY_RELEASE: if (ev->key.keyval == GDK_Delete) { - if (_mouse_state == EraseTouchDragging) { - delete_selection(); - apply_command(); - } - if (delete_mod) { - trackview.editor().set_midi_edit_mode(original_mode); - _mouse_state = None; - delete_mod = false; - } + delete_selection(); + apply_command(); return true; } else if (ev->key.keyval == GDK_Shift_L || ev->key.keyval == GDK_Control_L) { _mouse_state = None; @@ -247,9 +230,7 @@ MidiRegionView::canvas_event(GdkEvent* ev) return false; case GDK_BUTTON_PRESS: - if (_mouse_state != SelectTouchDragging && - _mouse_state != EraseTouchDragging && - ev->button.button == 1) { + if (_mouse_state != SelectTouchDragging && ev->button.button == 1) { _pressed_button = ev->button.button; _mouse_state = Pressed; return true; @@ -363,7 +344,6 @@ MidiRegionView::canvas_event(GdkEvent* ev) last_x = event_x; last_y = event_y; - case EraseTouchDragging: case SelectTouchDragging: return false; @@ -1150,7 +1130,13 @@ MidiRegionView::next_program(CanvasProgramChange& program) void MidiRegionView::delete_selection() { - assert(_delta_command); + if (_selection.empty()) { + return; + } + + if (!_delta_command) { + _delta_command = _model->new_delta_command("delete selection"); + } for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) { if ((*i)->selected()) { @@ -1605,11 +1591,7 @@ MidiRegionView::change_channel(uint8_t channel) void MidiRegionView::note_entered(ArdourCanvas::CanvasNoteEvent* ev) { - if (ev->note() && _mouse_state == EraseTouchDragging) { - if (!_delta_command) - start_delta_command(_("note entered")); - _delta_command->remove(ev->note()); - } else if (_mouse_state == SelectTouchDragging) { + if (_mouse_state == SelectTouchDragging) { note_selected(ev, true); } } diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h index 61e426795b..2ef8c5aa0c 100644 --- a/gtk2_ardour/midi_region_view.h +++ b/gtk2_ardour/midi_region_view.h @@ -218,8 +218,7 @@ class MidiRegionView : public RegionView Pressed, SelectTouchDragging, SelectRectDragging, - AddDragging, - EraseTouchDragging + AddDragging }; MouseState mouse_state() const { return _mouse_state; } |