wayland: commit scene after dispatch to fix one-frame-behind rendering

Client surface commits arrive during wl_event_loop_dispatch but may be
processed after the frame event has already rendered the old state. Add
an additional wlr_scene_output_commit after dispatch to immediately
pick up any new client content, fixing the one-interaction-behind
visual update issue in WINGs clients like WPrefs.
This commit is contained in:
Window Maker 2026-05-25 12:43:55 +02:00
parent 7982e8155d
commit ee434b024a
1 changed files with 5 additions and 0 deletions

View File

@ -3679,6 +3679,11 @@ wl_event_loop_run(void)
wlr_output_schedule_frame(wl_state.output);
wl_event_loop_dispatch(loop, 16);
/* Commit scene after dispatch to pick up any client surface
* updates that arrived during this iteration. */
if (wl_state.scene_output && wl_state.allocator)
wlr_scene_output_commit(wl_state.scene_output, NULL);
/* Check inotify for defaults database changes */
#ifdef HAVE_INOTIFY
if (w_global.inotify.fd_event_queue >= 0) {