summaryrefslogtreecommitdiff
path: root/quantum/process_keycode/process_tap_dance.h
diff options
context:
space:
mode:
authorSjB <steve@sagacity.ca>2017-01-29 13:04:43 -0500
committerSjB <steve@sagacity.ca>2017-01-29 13:26:31 -0500
commit5a860b71a1943358d0722ace9d2c13bd5c77c971 (patch)
treec14acba6ee9cfc163743d16f3cd5673e44766cdd /quantum/process_keycode/process_tap_dance.h
parentec05f654210a01ef82db2ab54e6065783536b802 (diff)
race condition between oneshot_mods and tap_dance
since the keycode for a tap dance process gets process only after the TAPPING_TERM timeout, you really only have ONESHOT_TIMEOUT - TAPPING_TERM time to tap or double tap on the key. This fix save the oneshot_mods into the action.state structure and applies the mods with the keycode when it's registered. It also unregisters the mod when the the tap dance process gets reset.
Diffstat (limited to 'quantum/process_keycode/process_tap_dance.h')
-rw-r--r--quantum/process_keycode/process_tap_dance.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h
index f753cbba66..726752ecc7 100644
--- a/quantum/process_keycode/process_tap_dance.h
+++ b/quantum/process_keycode/process_tap_dance.h
@@ -9,6 +9,7 @@
typedef struct
{
uint8_t count;
+ uint8_t oneshot_mods;
uint16_t keycode;
uint16_t timer;
bool interrupted;