diff options
author | Drashna Jaelre <drashna@live.com> | 2021-01-04 16:37:20 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-04 16:37:20 -0800 |
commit | 810eafad121bda333c53490e2d8a29f3a83d9c19 (patch) | |
tree | 975b8bd9c846d13f30da944e873326e0e0f69fa8 /quantum/process_keycode | |
parent | c38fe492426676cf101eeb024f7f33d8e98c445f (diff) | |
download | qmk_firmware-810eafad121bda333c53490e2d8a29f3a83d9c19.tar.gz qmk_firmware-810eafad121bda333c53490e2d8a29f3a83d9c19.zip |
Fix Tap-Hold Configs (#11127)
* Add proper prototypes for Tap-Hold Per Key functions
* Fix handwired/tennie default keymap
* Remove unneeded references
* Fix tapping term per key check in space cadet
* Pre-emptive fix for tap dance
* Fix marksard/leftover30
* Replace hard coded tapping term with define
Diffstat (limited to 'quantum/process_keycode')
-rw-r--r-- | quantum/process_keycode/process_space_cadet.c | 11 | ||||
-rw-r--r-- | quantum/process_keycode/process_space_cadet.h | 3 | ||||
-rw-r--r-- | quantum/process_keycode/process_tap_dance.c | 5 |
3 files changed, 10 insertions, 9 deletions
diff --git a/quantum/process_keycode/process_space_cadet.c b/quantum/process_keycode/process_space_cadet.c index bcaf62a96..f99db2a87 100644 --- a/quantum/process_keycode/process_space_cadet.c +++ b/quantum/process_keycode/process_space_cadet.c | |||
@@ -16,10 +16,6 @@ | |||
16 | #include "process_space_cadet.h" | 16 | #include "process_space_cadet.h" |
17 | #include "action_tapping.h" | 17 | #include "action_tapping.h" |
18 | 18 | ||
19 | #ifdef NO_ACTION_TAPPING | ||
20 | __attribute__((weak)) uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { return TAPPING_TERM; }; | ||
21 | #endif | ||
22 | |||
23 | // ********** OBSOLETE DEFINES, STOP USING! (pls?) ********** | 19 | // ********** OBSOLETE DEFINES, STOP USING! (pls?) ********** |
24 | // Shift / paren setup | 20 | // Shift / paren setup |
25 | #ifndef LSPO_KEY | 21 | #ifndef LSPO_KEY |
@@ -97,7 +93,12 @@ void perform_space_cadet(keyrecord_t *record, uint16_t sc_keycode, uint8_t holdM | |||
97 | register_mods(MOD_BIT(holdMod)); | 93 | register_mods(MOD_BIT(holdMod)); |
98 | } | 94 | } |
99 | } else { | 95 | } else { |
100 | if (sc_last == holdMod && timer_elapsed(sc_timer) < get_tapping_term(sc_keycode, record)) { | 96 | #ifdef TAPPING_TERM_PER_KEY |
97 | if (sc_last == holdMod && timer_elapsed(sc_timer) < get_tapping_term(sc_keycode, record)) | ||
98 | #else | ||
99 | if (sc_last == holdMod && timer_elapsed(sc_timer) < TAPPING_TERM) | ||
100 | #endif | ||
101 | { | ||
101 | if (holdMod != tapMod) { | 102 | if (holdMod != tapMod) { |
102 | if (IS_MOD(holdMod)) { | 103 | if (IS_MOD(holdMod)) { |
103 | unregister_mods(MOD_BIT(holdMod)); | 104 | unregister_mods(MOD_BIT(holdMod)); |
diff --git a/quantum/process_keycode/process_space_cadet.h b/quantum/process_keycode/process_space_cadet.h index 3ace07399..fcb70f3b4 100644 --- a/quantum/process_keycode/process_space_cadet.h +++ b/quantum/process_keycode/process_space_cadet.h | |||
@@ -19,6 +19,3 @@ | |||
19 | 19 | ||
20 | void perform_space_cadet(keyrecord_t *record, uint16_t sc_keycode, uint8_t holdMod, uint8_t tapMod, uint8_t keycode); | 20 | void perform_space_cadet(keyrecord_t *record, uint16_t sc_keycode, uint8_t holdMod, uint8_t tapMod, uint8_t keycode); |
21 | bool process_space_cadet(uint16_t keycode, keyrecord_t *record); | 21 | bool process_space_cadet(uint16_t keycode, keyrecord_t *record); |
22 | #ifdef NO_ACTION_TAPPING | ||
23 | uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record); | ||
24 | #endif | ||
diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index 0c7b6353e..138de0eba 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | #include "quantum.h" | 16 | #include "quantum.h" |
17 | #include "action_tapping.h" | ||
18 | 17 | ||
19 | #ifndef NO_ACTION_ONESHOT | 18 | #ifndef NO_ACTION_ONESHOT |
20 | uint8_t get_oneshot_mods(void); | 19 | uint8_t get_oneshot_mods(void); |
@@ -167,7 +166,11 @@ void matrix_scan_tap_dance() { | |||
167 | if (action->custom_tapping_term > 0) { | 166 | if (action->custom_tapping_term > 0) { |
168 | tap_user_defined = action->custom_tapping_term; | 167 | tap_user_defined = action->custom_tapping_term; |
169 | } else { | 168 | } else { |
169 | #ifdef TAPPING_TERM_PER_KEY | ||
170 | tap_user_defined = get_tapping_term(action->state.keycode, NULL); | 170 | tap_user_defined = get_tapping_term(action->state.keycode, NULL); |
171 | #else | ||
172 | tap_user_defined = TAPPING_TERM; | ||
173 | #endif | ||
171 | } | 174 | } |
172 | if (action->state.count && timer_elapsed(action->state.timer) > tap_user_defined) { | 175 | if (action->state.count && timer_elapsed(action->state.timer) > tap_user_defined) { |
173 | process_tap_dance_action_on_dance_finished(action); | 176 | process_tap_dance_action_on_dance_finished(action); |