From 51bf3ba3e623d69cf4ad9e9045cf10526e70be15 Mon Sep 17 00:00:00 2001
From: just-another-jxliu <just-another-jxliu@users.noreply.github.com>
Date: Tue, 22 Oct 2019 13:03:39 -0700
Subject: [PATCH] Fix held key getting stuck when NKRO is toggled (#6570)

* Fix held key getting stuck when NKRO is toggled

* Updated file to latest qmk version and added fix to cases MAGIC_UNHOST_NKRO & MAGIC_HOST_NKRO as well.

* Revert merged quantum.c
---
 quantum/quantum.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/quantum/quantum.c b/quantum/quantum.c
index 2020770ea5..d689a9fbfb 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -563,6 +563,7 @@ bool process_record_quantum(keyrecord_t *record) {
                         keymap_config.swap_backslash_backspace = true;
                         break;
                     case MAGIC_HOST_NKRO:
+                        clear_keyboard(); // clear first buffer to prevent stuck keys
                         keymap_config.nkro = true;
                         break;
                     case MAGIC_SWAP_ALT_GUI:
@@ -605,6 +606,7 @@ bool process_record_quantum(keyrecord_t *record) {
                         keymap_config.swap_backslash_backspace = false;
                         break;
                     case MAGIC_UNHOST_NKRO:
+                        clear_keyboard(); // clear first buffer to prevent stuck keys
                         keymap_config.nkro = false;
                         break;
                     case MAGIC_UNSWAP_ALT_GUI:
@@ -642,6 +644,7 @@ bool process_record_quantum(keyrecord_t *record) {
 #endif
                         break;
                     case MAGIC_TOGGLE_NKRO:
+                        clear_keyboard(); // clear first buffer to prevent stuck keys
                         keymap_config.nkro = !keymap_config.nkro;
                         break;
                     case MAGIC_EE_HANDS_LEFT: