From ec8b49c93f869010e360bec501d61c18089fbc61 Mon Sep 17 00:00:00 2001 From: Kirill Primak Date: Tue, 21 Jun 2022 14:00:48 +0300 Subject: [PATCH] subcompositor: consider map on creation wl_subsurface description states: A sub-surface becomes mapped, when a non-NULL wl_buffer is applied and the parent surface is mapped. Note that this doesn't require an explicit commit, which means that a newly created subsurface with a mapped parent and a buffer already attached must be mapped immediately. This can happen with the following sequence of events: - subcompositor.get_subsurface(subsurface, surface, parent) - surface.attach(buffer) - surface.commit() - subsurface.destroy() - subcompositor.get_subsurface(subsurface, surface, parent) Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3449 --- types/wlr_subcompositor.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/types/wlr_subcompositor.c b/types/wlr_subcompositor.c index 2b9b97cd..9467ec3c 100644 --- a/types/wlr_subcompositor.c +++ b/types/wlr_subcompositor.c @@ -374,6 +374,8 @@ static struct wlr_subsurface *subsurface_create(struct wlr_surface *surface, surface->role_data = subsurface; + subsurface_consider_map(subsurface, true); + return subsurface; }