diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-07-27 19:11:39 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-07-27 19:11:39 +0000 |
commit | 2fb2442dd31dc6f5e434011bedd552823bd82fd3 (patch) | |
tree | 66991efbfc2d87261dd852aea7fa7ab0ab64616a /gtk2_ardour/canvas_patch_change.cc | |
parent | 8fb9e72a77ac1366ed1aca18f7f76ee4179d9f89 (diff) |
Primary-(scroll|up|down) on patch/bank change event changes bank number; change format of verbose cursor when inside patch/bank change
git-svn-id: svn://localhost/ardour2/branches/3.0@9939 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas_patch_change.cc')
-rw-r--r-- | gtk2_ardour/canvas_patch_change.cc | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/gtk2_ardour/canvas_patch_change.cc b/gtk2_ardour/canvas_patch_change.cc index 53bddbef40..7f7413e39e 100644 --- a/gtk2_ardour/canvas_patch_change.cc +++ b/gtk2_ardour/canvas_patch_change.cc @@ -23,6 +23,7 @@ #include "gtkmm2ext/keyboard.h" #include "ardour/midi_patch_manager.h" + #include "ardour_ui.h" #include "midi_region_view.h" #include "canvas_patch_change.h" @@ -31,6 +32,7 @@ using namespace Gnome::Canvas; using namespace MIDI::Name; +using namespace Gtkmm2ext; using namespace std; /** @param x x position in pixels. @@ -118,7 +120,6 @@ CanvasPatchChange::initialize_popup_menus() void CanvasPatchChange::on_patch_menu_selected(const PatchPrimaryKey& key) { - cerr << " got patch program number " << key.program_number << endl; _region.change_patch_change (*this, key); } @@ -166,12 +167,20 @@ CanvasPatchChange::on_event (GdkEvent* ev) case GDK_Up: case GDK_KP_Up: case GDK_uparrow: - _region.previous_patch (*this); + if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) { + _region.previous_bank (*this); + } else { + _region.previous_patch (*this); + } break; case GDK_Down: case GDK_KP_Down: case GDK_downarrow: - _region.next_patch (*this); + if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) { + _region.next_bank (*this); + } else { + _region.next_patch (*this); + } break; default: break; @@ -180,10 +189,18 @@ CanvasPatchChange::on_event (GdkEvent* ev) case GDK_SCROLL: if (ev->scroll.direction == GDK_SCROLL_UP) { - _region.previous_patch (*this); + if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) { + _region.previous_bank (*this); + } else { + _region.previous_patch (*this); + } return true; } else if (ev->scroll.direction == GDK_SCROLL_DOWN) { - _region.next_patch (*this); + if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) { + _region.next_bank (*this); + } else { + _region.next_patch (*this); + } return true; } break; |