stable/xdg-shell: allow compositors to support transparent fullscreen windows
Not all compositors enforce fullscreen windows to be opaque, and for some applications (terminal emulators) it can make sense for the window to be translucent even while the window is fullscreen. At the same time, it can be beneficial for applications to rely on the compositor to enforce opaqueness and scale the surface, and some compositors want to use fullscreen transparency as a security feature, so both behaviors have to be supported by the protocol.
To cover these issues, this commit
- changes set_fullscreen to no longer require compositors to enforce opaqueness. Compositors are still allowed and recommended to do it, but the actually applied behavior is compositor policy, which matches how it works in practice today
- adds a set_fullscreen_2 request, where the client can ask for a specific behavior, either enforcing opaqueness and centering, or allowing transparency. Clients can find out if their desired behavior is supported with the matching wm_capabilities enum values.
Signed-off-by: Xaver Hugl xaver.hugl@kde.org