From 0f5500182ca00907045bcb1cd870616b5a3bee11 Mon Sep 17 00:00:00 2001 From: David Kosorin Date: Mon, 2 Jan 2023 11:16:24 +0100 Subject: Allow mod-tap hold action on one shot layer (#19214) --- quantum/action.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'quantum') 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 -- cgit v1.2.3