From 66a6dc33ecb4efda0e5985c69ab0d1734552bf0d Mon Sep 17 00:00:00 2001 From: Lorenzo Torres Date: Mon, 4 Aug 2025 13:41:38 +0200 Subject: [PATCH] Main loop now doesn't always wait for events --- src/xorg.zig | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/xorg.zig b/src/xorg.zig index 992685a..5c040b9 100644 --- a/src/xorg.zig +++ b/src/xorg.zig @@ -28,12 +28,14 @@ pub fn init(allocator: std.mem.Allocator) !void { var renderer = try Renderer.init(@TypeOf(connection), @TypeOf(window), allocator, connection, window); defer renderer.deinit(); - while (c.xcb_wait_for_event(connection)) |e| { - switch (e.*.response_type & ~@as(u32, 0x80)) { - else => {}, + while (true) { + if (c.xcb_poll_for_event(connection)) |e| { + switch (e.*.response_type & ~@as(u32, 0x80)) { + else => {}, + } + std.c.free(e); } try renderer.render(); - std.c.free(e); } }