Keep sticky modifiers active when modifier-only keys are pressed
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user