weston/kiosk-shell
Sergio Gómez beece0215f kiosk-shell: Handle relinking of surface trees when setting a parent
This commit adds code to maintain the correct order and linking of a surface in
its surface tree list for when a new parent is being set on it.

If the new parent is not NULL, the child might already belong to the same
surface tree as the new parent's root, in which case no relinking is necessary.
Check this by calling kiosk_shell_surface_is_surface_in_tree(shsurf, shroot),
to see if 'shsurf' is in the surface tree list represented by 'shroot', where
'shroot' is the new parent's root surface. In case 'shsurf' doesn't belong to
this surface tree, relink it there.

If parent is NULL, 'shsurf' will become root of a new surface tree list. In
this case 'shroot' is the root surface of shsurf's current surface tree list.
Iterate through the surface tree list of this 'shroot' to relink all
descendents of 'shsurf' into this new list and set it as the new active surface
tree for the output.

Signed-off-by: Sergio Gómez <sergio.g.delreal@gmail.com>
2023-07-27 10:13:48 +03:00
..
kiosk-shell-grab.c kiosk-shell: Use weston_coord for grabs 2023-06-19 13:09:03 +00:00
kiosk-shell-grab.h kiosk-shell: Introduce kiosk/fullscreen shell for desktop apps 2020-07-30 14:38:49 +00:00
kiosk-shell.c kiosk-shell: Handle relinking of surface trees when setting a parent 2023-07-27 10:13:48 +03:00
kiosk-shell.h kiosk-shell: Introduce an "active surface tree" for each kiosk shell output 2023-07-27 10:13:48 +03:00
meson.build shell-utils: Integrate shell-utils into libweston 2023-01-09 22:13:07 +00:00