diff options
author | Carl Hetherington <carl@carlh.net> | 2010-12-20 13:30:31 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-12-20 13:30:31 +0000 |
commit | 3ec58e478ccd0a495e6fb916de8da0b26d5d15b5 (patch) | |
tree | 35f4127eeac90fa3a38f6a84edaefa8139ba7803 /gtk2_ardour/canvas-program-change.cc | |
parent | 570ed69d2a791486a907b62ee2336a3953a7a1c0 (diff) |
Allow deletion of program changes in the same way as notes.
git-svn-id: svn://localhost/ardour2/branches/3.0@8304 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas-program-change.cc')
-rw-r--r-- | gtk2_ardour/canvas-program-change.cc | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/gtk2_ardour/canvas-program-change.cc b/gtk2_ardour/canvas-program-change.cc index b48d7b33ba..4e178819f2 100644 --- a/gtk2_ardour/canvas-program-change.cc +++ b/gtk2_ardour/canvas-program-change.cc @@ -2,6 +2,7 @@ #include <glibmm/regex.h> +#include "gtkmm2ext/keyboard.h" #include "ardour/midi_patch_manager.h" #include "ardour_ui.h" #include "midi_region_view.h" @@ -108,22 +109,27 @@ CanvasProgramChange::on_patch_menu_selected(const PatchPrimaryKey& key) } bool -CanvasProgramChange::on_event(GdkEvent* ev) +CanvasProgramChange::on_event (GdkEvent* ev) { switch (ev->type) { case GDK_BUTTON_PRESS: - switch (ev->button.button) { - case 1: - { - /* XXX: icky dcast */ - Editor* e = dynamic_cast<Editor*> (&_region.get_time_axis_view().editor()); - if (e->current_mouse_mode() == Editing::MouseObject && e->internal_editing()) { + { + /* XXX: icky dcast */ + Editor* e = dynamic_cast<Editor*> (&_region.get_time_axis_view().editor()); + if (e->current_mouse_mode() == Editing::MouseObject && e->internal_editing()) { + + if (Gtkmm2ext::Keyboard::is_delete_event (&ev->button)) { + + _region.delete_program_change (this); + return true; + + } else if (ev->button.button == 1) { e->drags()->set (new ProgramChangeDrag (e, this, &_region), ev); return true; } } - case 3: - // lazy init + + if (ev->button.button == 3) { if (!_popup_initialized) { initialize_popup_menus(); _popup_initialized = true; @@ -132,6 +138,7 @@ CanvasProgramChange::on_event(GdkEvent* ev) return true; } break; + } case GDK_KEY_PRESS: switch (ev->key.keyval) { |