2zw - X11 Windowmanager
Files | Log | Commits | Refs | README
Author: erikbackman
Date: 2024-02-12
Subject: focus previous window on destroy
commit d61487e93e576af9718bd29745653ba9e9c7982a Author: erikbackman <erikbackman@users.noreply.github.com> Date: Mon Feb 12 02:09:25 2024 +0100 focus previous window on destroy diff --git a/src/main.zig b/src/main.zig index 5cebbc4..cd790cd 100644 --- a/src/main.zig +++ b/src/main.zig @@ -180,17 +180,19 @@ fn unmanage(allocator: std.mem.Allocator, node: *L.Node, destroyed: bool) void { _ = C.XSetErrorHandler(handleError); _ = C.XUngrabServer(display); } - if (node == cursor) { - cursor = node.prev; - } + if (node == cursor) cursor = node.prev; + list.remove(node); allocator.destroy(node); - _ = C.XSetInputFocus( - display, - root, - C.RevertToPointerRoot, - C.CurrentTime, - ); + + if (cursor) |c| focus(c) else { + _ = C.XSetInputFocus( + display, + root, + C.RevertToPointerRoot, + C.CurrentTime, + ); + } } // Event handlers