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