diff options
Diffstat (limited to 'quantum/action.c')
-rw-r--r-- | quantum/action.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/quantum/action.c b/quantum/action.c index f6fbb999c8..79ea2b7635 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -350,7 +350,12 @@ void process_action(keyrecord_t *record, action_t action) { #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. - if (is_oneshot_layer_active() && event.pressed && (action.kind.id == ACT_USAGE || !IS_MOD(action.key.code)) + if (is_oneshot_layer_active() && event.pressed && + (action.kind.id == ACT_USAGE || !(IS_MOD(action.key.code) +# ifndef NO_ACTION_TAPPING + || (tap_count == 0 && (action.kind.id == ACT_LMODS_TAP || action.kind.id == ACT_RMODS_TAP)) +# endif + )) # ifdef SWAP_HANDS_ENABLE && !(action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT) # endif |