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.
hide() vfuncs to
respect the subsurface hierachy, allowing further usage of the
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)