From 472e2b2624d9fe3b92f2139fbd53771f4e9709b3 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Sun, 19 Apr 2020 15:15:50 +0200 Subject: Fix layer sufaces holding focus after unmap --- src/layer_surface.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/layer_surface.zig') diff --git a/src/layer_surface.zig b/src/layer_surface.zig index 0ad76c9..650fdb2 100644 --- a/src/layer_surface.zig +++ b/src/layer_surface.zig @@ -117,7 +117,17 @@ pub const LayerSurface = struct { } } + // This gives exclusive focus to a keyboard interactive top or overlay layer + // surface if there is one. layer_surface.output.arrangeLayers(); + + // Ensure that focus is given to the appropriate view if there is no + // other top/overlay layer surface to grab focus. + it = layer_surface.output.root.server.input_manager.seats.first; + while (it) |node| : (it = node.next) { + const seat = &node.data; + seat.focus(null); + } } fn handleCommit(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void { -- cgit v1.2.3