Draft: xwayland: Set opaque region for all x11 surfaces
Set the opaque region for all x11 surfaces based on the
_NET_WM_OPAQUE_REGION
property.
This is intended for the Wayland compositors who do not monitor the X11
property _NET_WM_OPAQUE_REGION
.
This is however a layering violation in the sense that Xwayland now monitors a property set by the X11 clients for the X11 compositor / window manager, but some Wayland compositors struggle with supporting that property because it doesn't fit the wl_surface abstractions.
Also, this could possibly cause additional wl_surface commits that other compositors who do not use the wl_surface opaque region for Xwayland surfaces.
Lastly, with this, the opaque region goes through the Wayland protocols, whereas the property is set by the X11 client using the X11 protocol, which may induce visual glitches especially on window resizes, as the compositor will not update the content hidden behind opaque regions.
So this is meant as an optimization for Wayland compositors who do not
or cannot use the X11 property _NET_WM_OPAQUE_REGION
.
/cc @zzag