]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Set keyboard_nkro (used by TMK) w/ MAGIC_HOST_NKRO
authorIBNobody <ibnobody@gmail.com>
Tue, 6 Sep 2016 23:02:43 +0000 (18:02 -0500)
committerIBNobody <ibnobody@gmail.com>
Tue, 6 Sep 2016 23:02:43 +0000 (18:02 -0500)
If NKRO is enabled, also set keyboard_nkro with MAGIC_HOST_NKRO and
MAGIC_UNHOST_NKRO.

quantum/quantum.c

index e3a20f43e01cf6bf345caa79354054f0c1431212..fa86b6220fcccfab0361e4ad79d0654cf8acad1d 100644 (file)
@@ -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;