diff options
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/quantum.c | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/quantum/quantum.c b/quantum/quantum.c index e3a20f43e0..fa86b6220f 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -27,6 +27,10 @@ static void do_code16 (uint16_t code, void (*f) (uint8_t)) {      f(KC_RGUI);  } +#ifdef NKRO_ENABLE +  extern bool keyboard_nkro; +#endif +  void register_code16 (uint16_t code) {    do_code16 (code, register_code);    register_code (code); @@ -223,6 +227,11 @@ bool process_record_quantum(keyrecord_t *record) {              keymap_config.swap_backslash_backspace = 1;          } else if (keycode == MAGIC_HOST_NKRO) {              keymap_config.nkro = 1; + +#ifdef NKRO_ENABLE +            clear_keyboard(); // clear to prevent stuck keys +            keyboard_nkro = keymap_config.nkro; +#endif          } else if (keycode == MAGIC_SWAP_ALT_GUI) {              keymap_config.swap_lalt_lgui = 1;              keymap_config.swap_ralt_rgui = 1; @@ -244,6 +253,10 @@ bool process_record_quantum(keyrecord_t *record) {              keymap_config.swap_backslash_backspace = 0;          } else if (keycode == MAGIC_UNHOST_NKRO) {              keymap_config.nkro = 0; +#ifdef NKRO_ENABLE +            clear_keyboard(); // clear to prevent stuck keys +            keyboard_nkro = keymap_config.nkro; +#endif          } else if (keycode == MAGIC_UNSWAP_ALT_GUI) {              keymap_config.swap_lalt_lgui = 0;              keymap_config.swap_ralt_rgui = 0; | 
