summaryrefslogtreecommitdiffstats
path: root/quantum/quantum.c
diff options
context:
space:
mode:
authorIBNobody <IBNobody@users.noreply.github.com>2016-09-07 01:07:48 +0200
committerGitHub <noreply@github.com>2016-09-07 01:07:48 +0200
commitf0388a5b1334ce0b8c8a359a0a8a1460e456b8c5 (patch)
treea39c5b9671e82068fe0bd5ab640257f3c6dda6d6 /quantum/quantum.c
parent91e0f62417d20e08031c2f8d7bf568566526f427 (diff)
parente571d4656cd283ce8d793fe3dd2ac176b84b0bf5 (diff)
downloadqmk_firmware-f0388a5b1334ce0b8c8a359a0a8a1460e456b8c5.tar.gz
qmk_firmware-f0388a5b1334ce0b8c8a359a0a8a1460e456b8c5.tar.xz
Merge pull request #6 from IBNobody/fix_magic_key_binding_NKRO
Set keyboard_nkro (used by TMK) w/ MAGIC_HOST_NKRO
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r--quantum/quantum.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index e3a20f43e..fa86b6220 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;