master
Raheman Vaiya 4 years ago
parent afd6fb73a5
commit 62b405e96b
  1. 2
      docs/keyd.scdoc
  2. 13
      src/keyboard.c

@ -610,7 +610,7 @@ A key may optionally be bound to an _action_ which accepts zero or more argument
Set the current layout.
*clear()*
Clear any active layers (the active layout is preserved).
Clear any toggled or oneshot layers.
*toggle(<layer>)*
Permanently toggle the state of the given layer.

@ -397,21 +397,18 @@ static void clear_oneshot(struct keyboard *kbd)
static void clear(struct keyboard *kbd)
{
size_t i;
clear_oneshot(kbd);
for (i = 1; i < kbd->config.nr_layers; i++) {
struct layer *layer = &kbd->config.layers[i];
if (layer->type != LT_LAYOUT) {
if (kbd->layer_state[i].active && kbd->layer_observer)
kbd->layer_observer(kbd, kbd->config.layers[i].name, 0);
memset(&kbd->layer_state[i], 0, sizeof kbd->layer_state[0]);
if (kbd->layer_state[i].toggled) {
kbd->layer_state[i].toggled = 0;
deactivate_layer(kbd, i);
}
}
}
/* Neutralize upstroke for active keys. */
memset(kbd->cache, 0, sizeof(kbd->cache));
kbd->oneshot_latch = 0;
kbd->active_macro = NULL;
reset_keystate(kbd);

Loading…
Cancel
Save