Re-composite dialog after each event in modal loop

After WMHandleEvent processes a key press, the text field repaints
into its backing image. The modal loop now re-composites the view tree
and commits to the scene graph so changes are visible immediately.
This commit is contained in:
Levi Neely 2026-05-13 21:47:24 +02:00
parent df7f681c14
commit 01f2e4463e
1 changed files with 10 additions and 0 deletions

View File

@ -1172,6 +1172,16 @@ void WMRunModalLoop(WMScreen * scr, WMView * view)
WMNextEvent(scr, &event);
WMHandleEvent(&event);
/* Wayland: re-composite and commit after each event */
if (!scr->display) {
const W_ViewBackend *vb = scr->viewBackend;
W_View *top = view;
while (top->parent && !top->flags.topLevel)
top = top->parent;
vb->redisplay(scr->viewBackendCtx, top);
vb->map_subviews(scr->viewBackendCtx, top);
}
}
scr->modalView = oldModalView;