WIP: surface-actor/wayland: Propagate clutter_actor_hide() to children

Closed Robert Mader requested to merge rmader/mutter:subsurface-hide-descendants into master

WARNING: this may break qtwayland because weston and sway (and probably kwin) have similar bugs - do not merge yet (qt issue)

In 77229f99 a flat actor hierachy for subsurfaces was introduced in order to work around Clutter limitations concerning actor ordering.

This however introduced a regression: hiding a subsurface would not hide its descendants any more, something we relied on in order to follow the Wayland spec.

Add show() and hide() vfuncs to MetaWaylandActorSurface that respect the subsurface hierachy, allowing further usage of the convenient clutter_actor_show() and clutter_actor_hide() functions.

This ensures we follow the following part of the Wayland spec:

A sub-surface becomes mapped, when a non-NULL wl_buffer is applied and the parent surface is mapped. The order of which one happens first is irrelevant. A sub-surface is hidden if the parent becomes hidden, or if a NULL wl_buffer is applied. These rules apply recursively through the tree of surfaces.

Closes #1384 (closed)

Edited by Robert Mader

Merge request reports