xwayland: Add input regions through descendants
With commit a4ed100c (xwayland: Set wl_surface input region) Xwayland now sets the Wayland input region corresponding to the X11 input shape.
Doing so, it searches for the Xwayland window matching the X11 toplevel window and applies the input regions.
The X11 input regions, however, might be set for a child window, in which case the global input region is wrong, causing pointer events to get through the X11 window with compositors using the Wayland input region.
To avoid that issue, create a union of the input shape of the toplevel window with all its descendants and apply that to the toplevel X11 window.
Fixes: a4ed100c - xwayland: Set wl_surface input region