diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index f53e3c70844..aae5cbfa5fe 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -76,6 +76,11 @@ void action_exec(keyevent_t event) { #endif } + if (event.pressed) { + // clear the potential weak mods left by previously pressed keys + clear_weak_mods(); + } + #ifdef SWAP_HANDS_ENABLE if (!IS_NOEVENT(event)) { process_hand_swap(&event); @@ -237,11 +242,6 @@ void process_action(keyrecord_t *record, action_t action) { uint8_t tap_count = record->tap.count; #endif - if (event.pressed) { - // clear the potential weak mods left by previously pressed keys - clear_weak_mods(); - } - #ifndef NO_ACTION_ONESHOT bool do_release_oneshot = false; // notice we only clear the one shot layer if the pressed key is not a modifier.