Only call updateLiveCompositeKeymap() on key press; not release

If we call updateLiveCompositeKeymap() on key release the keymap gets
updated before the release event occurs, and any ShiftToLayer(N) key
with a different definition on layer N won't work properly. Before its
release event is processed, it gets updated to the new value, and
layer N doesn't get turned off. If we only update the live keymap on
key press events, we don't have this problem.
pull/247/head
Michael Richters 7 years ago
parent d05c3cacf8
commit f6d627602e

@ -60,7 +60,7 @@ void handleKeyswitchEvent(Key mappedKey, byte row, byte col, uint8_t keyState) {
/* If a key had an on or off event, we update the live composite keymap. See /* If a key had an on or off event, we update the live composite keymap. See
* layers.h for an explanation about the different caches we have. */ * layers.h for an explanation about the different caches we have. */
if (keyToggledOn(keyState) || keyToggledOff(keyState)) if (keyToggledOn(keyState))
Layer.updateLiveCompositeKeymap(row, col); Layer.updateLiveCompositeKeymap(row, col);
/* If the key we are dealing with is masked, ignore it until it is released. /* If the key we are dealing with is masked, ignore it until it is released.

Loading…
Cancel
Save