diff options
author | zk-phi <zk-phi@users.noreply.github.com> | 2020-01-10 16:48:06 +0900 |
---|---|---|
committer | ridingqwerty <george.g.koenig@gmail.com> | 2020-01-10 02:48:06 -0500 |
commit | 7f388b65530b06779089be6cb4ddc56b2ecb36ff (patch) | |
tree | 19cf455d8ca3ae379304ea212d5b3d85917137b9 /tmk_core/common/action.c | |
parent | e34af631c2c4b0c9406dead907bf74b460ee9f7f (diff) |
Add per-key IGNORE_MOD_TAP_INTERRUPT feature (#7838)
* Implement IGNORE_MOD_TAP_INTERRUPT_PER_KEY
- Add configurable option IGNORE_MOD_TAP_INTERRUPT_PER_KEY
- Add function get_ignore_mod_tap_interrupt iff the option is enabled
Unless IGNORE_MOD_TAP_INTERRUPT_PER_KEY is defined, this patch does not affect the resulting binary.
* Add documentation for IGNORE_MOD_TAP_INTERRUPT_PER_KEY
Diffstat (limited to 'tmk_core/common/action.c')
-rw-r--r-- | tmk_core/common/action.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 7fbdbd8c3c..d6062703ee 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -47,6 +47,10 @@ int retro_tapping_counter = 0; # include <fauxclicky.h> #endif +#ifdef IGNORE_MOD_TAP_INTERRUPT_PER_KEY +__attribute__ ((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode) { return false; } +#endif + #ifndef TAP_CODE_DELAY # define TAP_CODE_DELAY 0 #endif @@ -308,8 +312,12 @@ void process_action(keyrecord_t *record, action_t action) { default: if (event.pressed) { if (tap_count > 0) { -# ifndef IGNORE_MOD_TAP_INTERRUPT - if (record->tap.interrupted) { +# if !defined(IGNORE_MOD_TAP_INTERRUPT) || defined(IGNORE_MOD_TAP_INTERRUPT_PER_KEY) + if ( +# ifdef IGNORE_MOD_TAP_INTERRUPT_PER_KEY + !get_ignore_mod_tap_interrupt(get_event_keycode(record->event)) && +# endif + record->tap.interrupted) { dprint("mods_tap: tap: cancel: add_mods\n"); // ad hoc: set 0 to cancel tap record->tap.count = 0; |