SUMMARY From the xdg-shell spec: ``` If the surface doesn't cover the whole output, the compositor will position the surface in the center of the output and compensate with with border fill covering the rest of the output. The content of the border fill is undefined, but should be assumed to be in some way that attempts to blend into the surrounding area (e.g. solid black). If the fullscreened surface is not opaque, the compositor must make sure that other screen content not part of the same surface tree (made up of subsurfaces, popups or similarly coupled surfaces) are not visible below the fullscreened surface. ``` STEPS TO REPRODUCE 1. run `weston-simple-egl -f -r` (requires very recent weston version, not released yet) OBSERVED RESULT The client surface is not centered, content behind it is visible. EXPECTED RESULT The client surface is not centered, content behind it is covered. ADDITIONAL INFORMATION This is currently not widely used by clients, however Wine-Wayland, once merged and enabled, will rely on it. Similar bugs are or where present in Mutter and Exo.
For the record, SDL could use this as well, as currently the Wayland mode-switching emulation stretches everything to the display dimensions, which distorts things (especially on ultrawide displays). Attempts to implement aspect-correct scaling with subsurfaces were made, but were dropped as they proved too buggy to be usable across all desktops. Now that almost all compositors center and mask around fullscreen windows, this can be revisited, but KWin missing support means that it either couldn't be enabled by default, or KDE would need to be detected and fall back to stretching the image instead of using the correct aspect ratio.
*** Bug 452731 has been marked as a duplicate of this bug. ***
*** Bug 489546 has been marked as a duplicate of this bug. ***