summaryrefslogtreecommitdiffstats
path: root/quantum/process_keycode/process_tap_dance.h
diff options
context:
space:
mode:
authorSjB <steve@sagacity.ca>2017-01-29 19:04:43 +0100
committerSjB <steve@sagacity.ca>2017-01-29 19:26:31 +0100
commit5a860b71a1943358d0722ace9d2c13bd5c77c971 (patch)
treec14acba6ee9cfc163743d16f3cd5673e44766cdd /quantum/process_keycode/process_tap_dance.h
parentec05f654210a01ef82db2ab54e6065783536b802 (diff)
downloadqmk_firmware-5a860b71a1943358d0722ace9d2c13bd5c77c971.tar.gz
qmk_firmware-5a860b71a1943358d0722ace9d2c13bd5c77c971.tar.xz
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 f753cbba6..726752ecc 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;