sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 088b374b1a3e7ead08e1430d3d89649b1cd5a54b
parent bd42415b5d3254f699a01845a0396e24f0de1a5f
Author: Brian Ashworth <bosrsf04@gmail.com>
Date:   Thu, 26 Dec 2019 19:51:06 -0500

layer-shell: refocus if keyboard interactive lost

When arranging layer-shell layers, verify that the currently focused
layer, if any, for each seat is still keyboard interactive. If the layer
is no longer keyboard interactive and there is not a keyboard
interactive overlay or top layer to change the focus to, refocus the
focus inactive node for the seat.

Diffstat:
Msway/desktop/layer_shell.c | 3+++
1 file changed, 3 insertions(+), 0 deletions(-)

diff --git a/sway/desktop/layer_shell.c b/sway/desktop/layer_shell.c @@ -215,6 +215,9 @@ void arrange_layers(struct sway_output *output) { wl_list_for_each(seat, &server.input->seats, link) { if (topmost != NULL) { seat_set_focus_layer(seat, topmost->layer_surface); + } else if (seat->focused_layer && + !seat->focused_layer->current.keyboard_interactive) { + seat_set_focus_layer(seat, NULL); } } }