aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Primak <vyivel@eclair.cafe>2022-06-21 14:00:48 +0300
committerKirill Primak <vyivel@eclair.cafe>2022-06-21 14:00:48 +0300
commitec8b49c93f869010e360bec501d61c18089fbc61 (patch)
treeed61c36b4871461bbe9240a569df18edb22487e5
parent2a1d7d40f4987bda17637796ce2aeae67370b1e3 (diff)
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
-rw-r--r--types/wlr_subcompositor.c2
1 files changed, 2 insertions, 0 deletions
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;
}