diff options
author | Simon Ser <contact@emersion.fr> | 2021-06-01 12:18:53 +0200 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-06-03 14:04:07 +0200 |
commit | 9e58301df7f09660cb36337211cbf5700d99810c (patch) | |
tree | dde24f5e73f6bfdedae8bd1f3833e652045a0a0d /include/wlr/render | |
parent | 11040d4942ed9210fcbca1d2d1001cb8d307b89d (diff) |
surface: allow placing subsurfaces below parent
Prior to this commit, subsurfaces could only be placed above their
parent. Any place_{above,below} request involving the parent would
fail with a protocol error.
However the Wayland protocol allows using the parent surface in the
place_{above,below} requests, and allows subsurfaces to be placed
below their parent.
Weston's implementation adds a dummy wl_list node in the subsurface
list. However this is potentially dangerous: iterating the list
requires making sure the dummy wl_list node is checked for, otherwise
memory corruption will happen.
Instead, split the list in two: one for subsurfaces above the parent,
the other for subsurfaces below.
Tested with wleird's subsurfaces demo client.
Closes: https://github.com/swaywm/wlroots/issues/1865
Diffstat (limited to 'include/wlr/render')
0 files changed, 0 insertions, 0 deletions