From 0bf205c5d2d3a7214e1622b5b26d3d1095904b95 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Wed, 1 Aug 2018 18:12:12 -0700 Subject: [PATCH] Keep sticky modifiers active when modifier-only keys are pressed --- right/src/usb_report_updater.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/right/src/usb_report_updater.c b/right/src/usb_report_updater.c index c829935..156db1a 100644 --- a/right/src/usb_report_updater.c +++ b/right/src/usb_report_updater.c @@ -246,10 +246,6 @@ static void applyKeyAction(key_state_t *keyState, key_action_t *action) handleSwitchLayerAction(keyState, action); - if (!keyState->previous) { - stickyModifiers = 0; - } - switch (action->type) { case KeyActionType_Keystroke: if (action->keystroke.scancode) { @@ -281,6 +277,9 @@ static void applyKeyAction(key_state_t *keyState, key_action_t *action) } break; case KeyActionType_Mouse: + if (!keyState->previous) { + stickyModifiers = 0; + } activeMouseStates[action->mouseAction] = true; break; case KeyActionType_SwitchLayer: @@ -288,11 +287,13 @@ static void applyKeyAction(key_state_t *keyState, key_action_t *action) break; case KeyActionType_SwitchKeymap: if (!keyState->previous) { + stickyModifiers = 0; SwitchKeymapById(action->switchKeymap.keymapId); } break; case KeyActionType_PlayMacro: if (!keyState->previous) { + stickyModifiers = 0; Macros_StartMacro(action->playMacro.macroId); } break;