diff --git a/WINGs/wview_wl.c b/WINGs/wview_wl.c index 3f4bb66..4363bb2 100644 --- a/WINGs/wview_wl.c +++ b/WINGs/wview_wl.c @@ -268,6 +268,15 @@ static void wl_map(void *vctx, W_View *view) (void)vctx; view->flags.mapped = 1; if (view->flags.realized && wl_redisplay_depth == 0) { + /* Only redisplay if all ancestors have backings (are realized). + * During W_RealizeView recursion, children may be mapped before + * their parent's backing exists. */ + W_View *v = view; + while (v->parent) { + if (!W_GetViewBacking(v->parent->window)) + return; + v = v->parent; + } wl_redisplay(vctx, view); } }