|
|
|
@ -192,7 +192,14 @@ void process_record(keyrecord_t *record) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!process_record_quantum(record)) return;
|
|
|
|
|
if (!process_record_quantum(record)) {
|
|
|
|
|
#ifndef NO_ACTION_ONESHOT
|
|
|
|
|
if (is_oneshot_layer_active() && record->event.pressed) {
|
|
|
|
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
process_record_handler(record);
|
|
|
|
|
post_process_record_quantum(record);
|
|
|
|
@ -231,7 +238,7 @@ 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 && !IS_MOD(action.key.code)
|
|
|
|
|
if (is_oneshot_layer_active() && event.pressed && (action.kind.id == ACT_USAGE || !IS_MOD(action.key.code))
|
|
|
|
|
# ifdef SWAP_HANDS_ENABLE
|
|
|
|
|
&& !(action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT)
|
|
|
|
|
# endif
|
|
|
|
|