diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-01-21 14:43:19 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-01-21 14:43:19 +0000 |
commit | c939a6624933c5bc7c920c296ad67c9a7dbfd1e9 (patch) | |
tree | 41bb74220dfef348c312f23c75d3144c10a4d98c /gtk2_ardour | |
parent | dabd5bd174a6fc9cb529fe7c4fdffe726799f594 (diff) |
MIDI patch changes should never be event-sensitive unless we're in internal/note edit mode
git-svn-id: svn://localhost/ardour2/branches/3.0@13948 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/canvas_patch_change.cc | 60 |
1 files changed, 27 insertions, 33 deletions
diff --git a/gtk2_ardour/canvas_patch_change.cc b/gtk2_ardour/canvas_patch_change.cc index 34658f51a4..7ab0eefd8c 100644 --- a/gtk2_ardour/canvas_patch_change.cc +++ b/gtk2_ardour/canvas_patch_change.cc @@ -155,28 +155,28 @@ in_edit_mode(Editor* editor) bool CanvasPatchChange::on_event (GdkEvent* ev) { - Editor* e; + /* XXX: icky dcast */ + Editor* e = dynamic_cast<Editor*> (&_region.get_time_axis_view().editor()); + + if (!in_edit_mode(e)) { + return false; + } switch (ev->type) { case GDK_BUTTON_PRESS: - /* XXX: icky dcast */ - e = dynamic_cast<Editor*> (&_region.get_time_axis_view().editor()); - if (in_edit_mode(e)) { - - if (Gtkmm2ext::Keyboard::is_delete_event (&ev->button)) { - - _region.delete_patch_change (this); - return true; - - } else if (Gtkmm2ext::Keyboard::is_edit_event (&ev->button)) { - - _region.edit_patch_change (this); - return true; - - } else if (ev->button.button == 1) { - e->drags()->set (new PatchChangeDrag (e, this, &_region), ev); - return true; - } + if (Gtkmm2ext::Keyboard::is_delete_event (&ev->button)) { + + _region.delete_patch_change (this); + return true; + + } else if (Gtkmm2ext::Keyboard::is_edit_event (&ev->button)) { + + _region.edit_patch_change (this); + return true; + + } else if (ev->button.button == 1) { + e->drags()->set (new PatchChangeDrag (e, this, &_region), ev); + return true; } if (ev->button.button == 3) { @@ -221,26 +221,20 @@ CanvasPatchChange::on_event (GdkEvent* ev) break; case GDK_SCROLL: - /* XXX: icky dcast */ - e = dynamic_cast<Editor*> (&_region.get_time_axis_view().editor()); - if (in_edit_mode(e)) { - if (ev->scroll.direction == GDK_SCROLL_UP) { - if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) { - _region.previous_bank (*this); - } else { - _region.previous_patch (*this); - } - } else if (ev->scroll.direction == GDK_SCROLL_DOWN) { + if (ev->scroll.direction == GDK_SCROLL_UP) { + if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) { + _region.previous_bank (*this); + } else { + _region.previous_patch (*this); + } + } else if (ev->scroll.direction == GDK_SCROLL_DOWN) { if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) { _region.next_bank (*this); } else { _region.next_patch (*this); } - } - return true; - break; } - break; + return true; case GDK_ENTER_NOTIFY: _region.patch_entered (this); |