2zw - X11 Windowmanager
Files | Log | Commits | Refs | README
Author: erikbackman
Date: 2024-02-08
Subject: return node when adding client and let caller decide what to do after adding
commit dfac9455c9351edafcd999b10901e2b713deaecf Author: erikbackman <erikbackman@users.noreply.github.com> Date: Thu Feb 8 22:43:52 2024 +0100 return node when adding client and let caller decide what to do after adding diff --git a/src/main.zig b/src/main.zig index 7bb66c7..13c5d97 100644 --- a/src/main.zig +++ b/src/main.zig @@ -105,7 +105,7 @@ const L = std.DoublyLinkedList(Client); var list = L{}; var cursor: ?*L.Node = null; // having the cursor be nullable is annoying.. -fn addClient(allocator: std.mem.Allocator, window: C.Window) !void { +fn addClient(allocator: std.mem.Allocator, window: C.Window) !*L.Node { var attributes: C.XWindowAttributes = undefined; _ = C.XGetWindowAttributes(display, window, &attributes); @@ -122,8 +122,8 @@ fn addClient(allocator: std.mem.Allocator, window: C.Window) !void { node.data = client; list.append(node); - focus(node); - cursor = node; + + return node; } fn center(c: *L.Node) void { @@ -212,12 +212,8 @@ fn onMapRequest(allocator: std.mem.Allocator, event: *C.XEvent) !void { _ = C.XMapWindow(display, window); _ = C.XSetWindowBorderWidth(display, window, BORDER_WIDTH); - try addClient(allocator, window); - - if (cursor) |node| { - //center(node); - focus(node); - } + const node = try addClient(allocator, window); + focus(node); } fn onUnmapNotify(allocator: std.mem.Allocator, e: *C.XEvent) void {