From ab34ecb66993f0cb7fc2a6aa960d0d0c4bafb773 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 12 Sep 2021 16:48:11 -0700 Subject: [PATCH] Apply `TAP_CODE_DELAY` to Tap Dance key sequences (#14412) * Add support to tap dances * Move default tap code defines to header file --- quantum/action.c | 6 ------ quantum/action.h | 7 +++++++ quantum/process_keycode/process_tap_dance.c | 2 ++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/quantum/action.c b/quantum/action.c index d19fd2a0450..be135f18f20 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -57,12 +57,6 @@ __attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *reco __attribute__((weak)) bool pre_process_record_quantum(keyrecord_t *record) { return true; } -#ifndef TAP_CODE_DELAY -# define TAP_CODE_DELAY 0 -#endif -#ifndef TAP_HOLD_CAPS_DELAY -# define TAP_HOLD_CAPS_DELAY 80 -#endif /** \brief Called to execute an action. * * FIXME: Needs documentation. diff --git a/quantum/action.h b/quantum/action.h index 3d357b33b82..8a357ded87b 100644 --- a/quantum/action.h +++ b/quantum/action.h @@ -38,6 +38,13 @@ extern "C" { # endif #endif +#ifndef TAP_CODE_DELAY +# define TAP_CODE_DELAY 0 +#endif +#ifndef TAP_HOLD_CAPS_DELAY +# define TAP_HOLD_CAPS_DELAY 80 +#endif + /* tapping count and state */ typedef struct { bool interrupted : 1; diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index c8712d919f2..225b36cd5fd 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -44,6 +44,7 @@ void qk_tap_dance_pair_finished(qk_tap_dance_state_t *state, void *user_data) { void qk_tap_dance_pair_reset(qk_tap_dance_state_t *state, void *user_data) { qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data; + wait_ms(TAP_CODE_DELAY); if (state->count == 1) { unregister_code16(pair->kc1); } else if (state->count == 2) { @@ -74,6 +75,7 @@ void qk_tap_dance_dual_role_reset(qk_tap_dance_state_t *state, void *user_data) qk_tap_dance_dual_role_t *pair = (qk_tap_dance_dual_role_t *)user_data; if (state->count == 1) { + wait_ms(TAP_CODE_DELAY); unregister_code16(pair->kc); } }