wayland/subsurface: Keep subsurface actors reactive
The actors of Wayland subsurfaces are set to be reactive on creation, when receiving the wl_subcompositor.get_subsurface
request.
However, if a client creates several subsurfaces and then creates the xdg_toplevel object after, the previous subsurface actors are reset.
As a result, Clutter picking will skip and ignore those actors in clutter_actor_should_pick_paint()
because they aren't marked as reactive anymore.
An example of such a client being affected by this issue is SCTK, the Rust library implementing client side decorations for Wayland used internally by winit and alacritty.
Move the set_reactive()
call from get_subsurface()
to the subsurface sync_actor_subsurface_state()
vfunc to make sure those remain reactive even after xdg_surface.get_toplevel
is invoked.
Closes: #1024 (closed)