WINGs/wview_wl: recursively redisplay children in wl_redisplay
wl_redisplay fills the view's background then paints widget content via expose, but never re-composited child views. Children painted earlier were erased by the parent's background fill. Now recursively calls wl_redisplay on all mapped+realized children after the parent's expose handler, so the full widget tree composites bottom-up.
This commit is contained in:
parent
9a9cc9e9df
commit
c70fec7f56
|
|
@ -437,6 +437,15 @@ static void wl_redisplay(void *vctx, W_View *view)
|
|||
|
||||
WMHandleEvent(&ev);
|
||||
|
||||
/* Re-composite all mapped children into this view's backing */
|
||||
W_View *child = view->childrenList;
|
||||
while (child) {
|
||||
if (child->flags.mapped && child->flags.realized) {
|
||||
wl_redisplay(vctx, child);
|
||||
}
|
||||
child = child->nextSister;
|
||||
}
|
||||
|
||||
/* Composite this view's backing into its parent's backing */
|
||||
if (view->parent) {
|
||||
pixman_image_t *src = (pixman_image_t *)W_GetViewBacking(view->window);
|
||||
|
|
|
|||
Loading…
Reference in New Issue