diff --git a/plugins/Kaleidoscope-Escape-OneShot/src/kaleidoscope/plugin/Escape-OneShot.cpp b/plugins/Kaleidoscope-Escape-OneShot/src/kaleidoscope/plugin/Escape-OneShot.cpp index 2f60bf5d..1e6a9637 100644 --- a/plugins/Kaleidoscope-Escape-OneShot/src/kaleidoscope/plugin/Escape-OneShot.cpp +++ b/plugins/Kaleidoscope-Escape-OneShot/src/kaleidoscope/plugin/Escape-OneShot.cpp @@ -26,21 +26,20 @@ namespace plugin { Key EscapeOneShot::cancel_oneshot_key_{Key_Escape}; -EventHandlerResult EscapeOneShot::onKeyswitchEvent( - Key &key, KeyAddr key_addr, uint8_t key_state) { +EventHandlerResult EscapeOneShot::onKeyEvent(KeyEvent &event) { // We only act on an escape key (or `cancel_oneshot_key_`, if that has been // set) that has just been pressed, and not generated by some other // plugin. Also, only if at least one OneShot key is active and/or // sticky. Last, only if there are no OneShot keys currently being held. - if (key == cancel_oneshot_key_ && - keyToggledOn(key_state) && - !(key_state & INJECTED) && + if (event.key == cancel_oneshot_key_ && + keyToggledOn(event.state) && + (event.state & INJECTED) == 0 && ::OneShot.isActive()) { // Cancel all OneShot keys ::OneShot.cancel(true); // Change the cancellation key to a blank key, and signal that event // processing is complete. - key = Key_NoKey; + event.key = Key_NoKey; return EventHandlerResult::EVENT_CONSUMED; } diff --git a/plugins/Kaleidoscope-Escape-OneShot/src/kaleidoscope/plugin/Escape-OneShot.h b/plugins/Kaleidoscope-Escape-OneShot/src/kaleidoscope/plugin/Escape-OneShot.h index 4e0393cd..ce9af5b0 100644 --- a/plugins/Kaleidoscope-Escape-OneShot/src/kaleidoscope/plugin/Escape-OneShot.h +++ b/plugins/Kaleidoscope-Escape-OneShot/src/kaleidoscope/plugin/Escape-OneShot.h @@ -27,7 +27,7 @@ class EscapeOneShot : public kaleidoscope::Plugin { public: EscapeOneShot(void) {} - EventHandlerResult onKeyswitchEvent(Key &key, KeyAddr key_addr, uint8_t key_state); + EventHandlerResult onKeyEvent(KeyEvent &event); void setCancelKey(Key cancel_key) { cancel_oneshot_key_ = cancel_key;