xwm: Reparent client windows into ARGB windows
We used to rely on an ugly hack where the xwayland server would always report RGB X windows as having ARGB pixels, so that texturing from these would also sample the undefined alpha. We also relied on Xrender rendering to RGB X windows to write the alpha channel correctly, so that when we texture from the RGB X window as an ARGB surface we end up getting the alpha written by Xrender. That was obviously all broken. We can instead reparent client windows into ARGB frame windows. That way we can render the decorations using a ARGB render pictformat and sample back those alpha values in a well-defined way. We can also unbreak xwayland and let it report RGB pixel format for RGB windows. We still need the opaque region or the RGB-only client window but that's OK.
Showing with 44 additions and 6 deletions