From 8a655e3cfd0837f63faa16d33d111d4c66c3facd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Sat, 10 Feb 2018 23:53:35 +0100 Subject: [PATCH] Lock layers every time when double-tapping their layer switcher keys. Fixes #81. --- right/src/usb_report_updater.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/right/src/usb_report_updater.c b/right/src/usb_report_updater.c index ca252c4..7fdf9bd 100644 --- a/right/src/usb_report_updater.c +++ b/right/src/usb_report_updater.c @@ -234,15 +234,12 @@ void applyKeyAction(key_state_t *keyState, key_action_t *action) break; case KeyActionType_SwitchLayer: if (!keyState->previous && previousLayer == LayerId_Base && action->switchLayer.mode == SwitchLayerMode_HoldAndDoubleTapToggle) { - if (doubleTapSwitchLayerKey) { - if (Timer_GetElapsedTimeAndSetCurrent(&doubleTapSwitchLayerStartTime) < DoubleTapSwitchLayerTimeout) { - ToggledLayer = action->switchLayer.layer; - } - doubleTapSwitchLayerKey = NULL; + if (doubleTapSwitchLayerKey && Timer_GetElapsedTimeAndSetCurrent(&doubleTapSwitchLayerStartTime) < DoubleTapSwitchLayerTimeout) { + ToggledLayer = action->switchLayer.layer; } else { doubleTapSwitchLayerKey = keyState; - doubleTapSwitchLayerStartTime = CurrentTime; } + doubleTapSwitchLayerStartTime = CurrentTime; } break; case KeyActionType_SwitchKeymap: