diff options
Diffstat (limited to 'libs/surfaces/push2/buttons.cc')
-rw-r--r-- | libs/surfaces/push2/buttons.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libs/surfaces/push2/buttons.cc b/libs/surfaces/push2/buttons.cc index fe9e3322f4..316353f764 100644 --- a/libs/surfaces/push2/buttons.cc +++ b/libs/surfaces/push2/buttons.cc @@ -503,20 +503,28 @@ Push2::start_press_timeout (Button& button, ButtonID id) void Push2::button_octave_down () { + if (_modifier_state & ModShift) { + octave_shift = 0; + return; + } + int os = (max (-4, octave_shift - 1)); if (os != octave_shift) { octave_shift = os; - build_pad_table (); } } void Push2::button_octave_up () { + if (_modifier_state & ModShift) { + octave_shift = 0; + return; + } + int os = (min (4, octave_shift + 1)); if (os != octave_shift) { octave_shift = os; - build_pad_table (); } } |