Keep sticky modifiers active when modifier-only keys are pressed

This commit is contained in:
Eric Tang
2018-08-01 18:12:12 -07:00
parent e4a99a9400
commit 0bf205c5d2

View File

@@ -246,10 +246,6 @@ static void applyKeyAction(key_state_t *keyState, key_action_t *action)
handleSwitchLayerAction(keyState, action); handleSwitchLayerAction(keyState, action);
if (!keyState->previous) {
stickyModifiers = 0;
}
switch (action->type) { switch (action->type) {
case KeyActionType_Keystroke: case KeyActionType_Keystroke:
if (action->keystroke.scancode) { if (action->keystroke.scancode) {
@@ -281,6 +277,9 @@ static void applyKeyAction(key_state_t *keyState, key_action_t *action)
} }
break; break;
case KeyActionType_Mouse: case KeyActionType_Mouse:
if (!keyState->previous) {
stickyModifiers = 0;
}
activeMouseStates[action->mouseAction] = true; activeMouseStates[action->mouseAction] = true;
break; break;
case KeyActionType_SwitchLayer: case KeyActionType_SwitchLayer:
@@ -288,11 +287,13 @@ static void applyKeyAction(key_state_t *keyState, key_action_t *action)
break; break;
case KeyActionType_SwitchKeymap: case KeyActionType_SwitchKeymap:
if (!keyState->previous) { if (!keyState->previous) {
stickyModifiers = 0;
SwitchKeymapById(action->switchKeymap.keymapId); SwitchKeymapById(action->switchKeymap.keymapId);
} }
break; break;
case KeyActionType_PlayMacro: case KeyActionType_PlayMacro:
if (!keyState->previous) { if (!keyState->previous) {
stickyModifiers = 0;
Macros_StartMacro(action->playMacro.macroId); Macros_StartMacro(action->playMacro.macroId);
} }
break; break;