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); } }