diff --git a/src/kaleidoscope/key_events.cpp b/src/kaleidoscope/key_events.cpp index 72aba01a..f1c58159 100644 --- a/src/kaleidoscope/key_events.cpp +++ b/src/kaleidoscope/key_events.cpp @@ -81,8 +81,13 @@ void handleKeyswitchEvent(Key mappedKey, byte row, byte col, uint8_t keyState) { /* If a key had an on event, we update the live composite keymap. See * layers.h for an explanation about the different caches we have. */ - if (keyToggledOn(keyState)) - Layer.updateLiveCompositeKeymap(row, col); + if (keyToggledOn(keyState)) { + if (mappedKey.raw == Key_NoKey.raw) { + Layer.updateLiveCompositeKeymap(row, col); + } else { + Layer.updateLiveCompositeKeymap(row, col, mappedKey); + } + } /* If the key we are dealing with is masked, ignore it until it is released. * When releasing it, clear the mask, so future key events can be handled