From ea97f185dec308a07bfad5a306c279a123030e1d Mon Sep 17 00:00:00 2001 From: Stefan Dorn Date: Sat, 13 Feb 2016 22:08:05 +0000 Subject: [PATCH] trust layers_top so we don't disable a layer that was already off --- src/main.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main.c b/src/main.c index 1dd8d58..86b97e6 100644 --- a/src/main.c +++ b/src/main.c @@ -172,15 +172,13 @@ void main_layers_enable(uint8_t layer, uint8_t sticky) { // disable a layer void main_layers_disable(uint8_t layer) { - if (layer >= KB_LAYERS) { return; } - // base layer stays always on - if (layer > 0) { - layers[layer].active = false; - layers[layer].sticky = eStickyNone; - } + if (layer >= KB_LAYERS || layer == 0) { return; } - if (layer >= layers_top) { + layers[layer].active = false; + layers[layer].sticky = eStickyNone; + + if (layer == layers_top) { layers_top = _highest_active_layer(1); } }