diff --git a/gtk2_ardour/pianokeyboard.cc b/gtk2_ardour/pianokeyboard.cc index d7635cf3c6..9c56ae8a0e 100644 --- a/gtk2_ardour/pianokeyboard.cc +++ b/gtk2_ardour/pianokeyboard.cc @@ -556,7 +556,7 @@ APianoKeyboard::on_key_press_event (GdkEventKey* event) return false; } if (note == 129) { - toggle_sustain (); + sustain_press (); return true; } @@ -582,14 +582,20 @@ APianoKeyboard::on_key_release_event (GdkEventKey* event) return false; } - if (key_binding (key) == 128) { + int note = key_binding (key); + + if (note == 128) { Rest (); /* EMIT SIGNAL */ return true; } + if (note == 129) { + sustain_release (); + return true; + } std::map::const_iterator kv = _note_stack.find (key); if (kv == _note_stack.end ()) { - return key_binding (key) != -1; + return note != -1; } release_key (kv->second); @@ -926,16 +932,6 @@ APianoKeyboard::set_velocities (int min_vel, int max_vel, int key_vel) } } -void -APianoKeyboard::toggle_sustain () -{ - if (_sustain_new_notes) { - sustain_release (); - } else { - sustain_press (); - } -} - void APianoKeyboard::sustain_press () { diff --git a/gtk2_ardour/pianokeyboard.h b/gtk2_ardour/pianokeyboard.h index 56c2d2cdf1..2b12befe73 100644 --- a/gtk2_ardour/pianokeyboard.h +++ b/gtk2_ardour/pianokeyboard.h @@ -79,7 +79,6 @@ private: void queue_note_draw (int note); - void toggle_sustain (); void press_key (int key, int vel); void release_key (int key); void stop_sustained_notes ();