From 637842ce4bcd2a5a0561717f498e6f109b60daf3 Mon Sep 17 00:00:00 2001 From: Diego Viola Date: Wed, 11 Nov 2026 04:47:28 -0300 Subject: [PATCH] fix black screen on QEMU modeset/resize When running dwl inside a QEMU VM and toggling fullscreen in and out, the output can stay as a black screen until a new client (such as foot) forces a redraw. Calling wlr_output_schedule_frame() ensures the frame loop stays active and resolves the issue. --- dwl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dwl.c b/dwl.c index bb7cf77..25796d9 100644 --- a/dwl.c +++ b/dwl.c @@ -2430,6 +2430,7 @@ rendermon(struct wl_listener *listener, void *data) wlr_scene_output_commit(m->scene_output, NULL); clock_gettime(CLOCK_MONOTONIC, &now); + wlr_output_schedule_frame(m->wlr_output); wlr_scene_output_send_frame_done(m->scene_output, &now); } @@ -2459,6 +2460,7 @@ requestmonstate(struct wl_listener *listener, void *data) { struct wlr_output_event_request_state *event = data; wlr_output_commit_state(event->output, event->state); + wlr_output_schedule_frame(event->output); updatemons(NULL, NULL); }