From 8fb50b2415a49903d6f0a493313f02d938b89939 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Fri, 24 Aug 2018 01:02:22 -0700 Subject: [PATCH] Only run our "toggle numlock mode" once upon toggle of the layer Signed-off-by: Jesse Vincent --- src/Kaleidoscope-NumPad.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Kaleidoscope-NumPad.cpp b/src/Kaleidoscope-NumPad.cpp index be424624..2d32e666 100644 --- a/src/Kaleidoscope-NumPad.cpp +++ b/src/Kaleidoscope-NumPad.cpp @@ -21,7 +21,7 @@ byte NumPad_::numpad_lock_key_row = 255, NumPad_::numpad_lock_key_col = 255; uint8_t NumPad_::numPadLayer; -bool NumPad_::cleanupDone = true; +bool NumPad_::cleanupDone = false; bool NumPad_::originalNumLockState = false; cRGB NumPad_::color = CRGB(160, 0, 0); uint8_t NumPad_::lock_hue = 170; @@ -52,8 +52,8 @@ void NumPad_::cleanupNumlockState() { syncNumlockState(false); numLockLEDState = false; } - cleanupDone = true; originalNumLockState = numLockLEDState; + cleanupDone = true; } } @@ -90,10 +90,11 @@ void NumPad_::setKeyboardLEDColors(void) { kaleidoscope::EventHandlerResult NumPad_::afterEachCycle() { if (!Layer.isOn(numPadLayer)) { cleanupNumlockState(); - } else { - cleanupDone = false; + } else if (cleanupDone) { + // If it's the first time we're in this loop after toggling the Numpad mode on syncNumlockState(true); setKeyboardLEDColors(); + cleanupDone = false; } return kaleidoscope::EventHandlerResult::OK;