From 61c7fbfbb7fe6a68c557f9e26df158b1d44c04fe Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 8 Apr 2026 21:22:23 +0200 Subject: [PATCH] fix(gui): disable vsync to workaround hang when window is unmapped --- src/gui/wio/app.zig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gui/wio/app.zig b/src/gui/wio/app.zig index e38f4b73..61ec5a23 100644 --- a/src/gui/wio/app.zig +++ b/src/gui/wio/app.zig @@ -406,6 +406,13 @@ fn wioLoop() void { defer window.destroy(); window.makeContextCurrent(); + // Disable EGL vsync throttling so eglSwapBuffers() returns immediately. + // Without this, eglSwapBuffers() blocks waiting for a frame callback from + // the compositor. Compositors do not send frame callbacks for surfaces on + // background virtual desktops, so any paint while the window is hidden + // causes eglSwapBuffers() to stall indefinitely, freezing the Wayland + // event loop and triggering an "Application Not Responding" dialog. + window.swapInterval(0); sg.setup(.{ .logger = .{ .func = slog.func },