diff options
author | Kirill Primak <vyivel@eclair.cafe> | 2022-06-21 14:00:48 +0300 |
---|---|---|
committer | Kirill Primak <vyivel@eclair.cafe> | 2022-06-21 14:00:48 +0300 |
commit | ec8b49c93f869010e360bec501d61c18089fbc61 (patch) | |
tree | ed61c36b4871461bbe9240a569df18edb22487e5 | |
parent | 2a1d7d40f4987bda17637796ce2aeae67370b1e3 (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.c | 2 |
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; } |