diff --git a/src/Kaleidoscope-NumPad.cpp b/src/Kaleidoscope-NumPad.cpp index 84b9eba2..08ed6c93 100644 --- a/src/Kaleidoscope-NumPad.cpp +++ b/src/Kaleidoscope-NumPad.cpp @@ -14,8 +14,12 @@ void NumPad_::begin(void) { originalNumLockState = !!(kaleidoscope::hid::getKeyboardLEDs() & LED_NUM_LOCK); } +static bool getNumlockState() { + return !!(kaleidoscope::hid::getKeyboardLEDs() & LED_NUM_LOCK); +} + static void syncNumlock(bool state) { - bool numState = !!(kaleidoscope::hid::getKeyboardLEDs() & LED_NUM_LOCK); + bool numState = getNumlockState(); if (numState != state) { kaleidoscope::hid::pressKey(Key_KeypadNumLock); } @@ -26,16 +30,15 @@ void NumPad_::loopHook(bool postClear) { return; if (!Layer.isOn(numPadLayer)) { - bool numState = !!(kaleidoscope::hid::getKeyboardLEDs() & LED_NUM_LOCK); + bool numState = getNumlockState(); if (!cleanupDone) { LEDControl.set_mode(LEDControl.get_mode_index()); - syncNumlock(false); - cleanupDone = true; - if (numState && !originalNumLockState) { - kaleidoscope::hid::pressKey(Key_KeypadNumLock); + if (!originalNumLockState) { + syncNumlock(false); numState = false; } + cleanupDone = true; } originalNumLockState = numState; return;