diff options
author | tsankuanglee <github@tklee.com> | 2017-10-31 11:15:22 -0400 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2017-10-31 11:15:22 -0400 |
commit | 04b9b62bdc5ed394a06c5c73acdce0b261220e85 (patch) | |
tree | 53b6a67bdc577f5a1ce50a4b2aad7633a7c29777 /tmk_core/common/action.c | |
parent | b2bbbc2dfcf21783bd84cb4db9fd96016c2951af (diff) | |
download | qmk_firmware-04b9b62bdc5ed394a06c5c73acdce0b261220e85.tar.gz |
RETRO_TAPPING (#1922)
* add RETRO_TAP: tap anyway, even after TAP_TERM, if no interruption
* consistent variable name
* add option doc
* change name for consistency
* make RETRO_TAPPING default to off
Diffstat (limited to 'tmk_core/common/action.c')
-rw-r--r-- | tmk_core/common/action.c | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 41de01485..b39aa4cbc 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -36,6 +36,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. int tp_buttons; +#ifdef RETRO_TAPPING +int retro_tapping_counter = 0; +#endif + #ifdef FAUXCLICKY_ENABLE #include <fauxclicky.h> #endif @@ -45,6 +49,9 @@ void action_exec(keyevent_t event) if (!IS_NOEVENT(event)) { dprint("\n---- action_exec: start -----\n"); dprint("EVENT: "); debug_event(event); dprintln(); +#ifdef RETRO_TAPPING + retro_tapping_counter++; +#endif } #ifdef FAUXCLICKY_ENABLE @@ -586,6 +593,32 @@ void process_action(keyrecord_t *record, action_t action) } #endif +#ifndef NO_ACTION_TAPPING + #ifdef RETRO_TAPPING + if (!is_tap_key(record->event.key)) { + retro_tapping_counter = 0; + } else { + if (event.pressed) { + if (tap_count > 0) { + retro_tapping_counter = 0; + } else { + + } + } else { + if (tap_count > 0) { + retro_tapping_counter = 0; + } else { + if (retro_tapping_counter == 2) { + register_code(action.layer_tap.code); + unregister_code(action.layer_tap.code); + } + retro_tapping_counter = 0; + } + } + } + #endif +#endif + #ifndef NO_ACTION_ONESHOT /* Because we switch layers after a oneshot event, we need to release the * key before we leave the layer or no key up event will be generated. @@ -619,7 +652,7 @@ void register_code(uint8_t code) #endif add_key(KC_CAPSLOCK); send_keyboard_report(); - wait_ms(100); + wait_ms(100); del_key(KC_CAPSLOCK); send_keyboard_report(); } @@ -630,7 +663,7 @@ void register_code(uint8_t code) #endif add_key(KC_NUMLOCK); send_keyboard_report(); - wait_ms(100); + wait_ms(100); del_key(KC_NUMLOCK); send_keyboard_report(); } @@ -641,7 +674,7 @@ void register_code(uint8_t code) #endif add_key(KC_SCROLLLOCK); send_keyboard_report(); - wait_ms(100); + wait_ms(100); del_key(KC_SCROLLLOCK); send_keyboard_report(); } |