Skip to content

xdg-shell: Allow fullscreen surfaces to not cover the whole screen

The wording of the xdg-shell protocol allows surfaces to not cover the whole screen when they are made fullscreen. From the description of the fullscreen state in xdg-shell:

The window geometry specified in the configure event is a maximum; the client cannot resize beyond it. For a surface to cover the whole fullscreened area, the geometry dimensions must be obeyed by the client.

The last sentence is the condition for fullscreen coverage, not a requirement.

This commit updates the code to not flag size mismatches for fullscreen surfaces as a protocol error. In such cases, the shell is responsible for centering surfaces appropriately and also for obscuring other screen content as described in the xdg_toplevel.set_fullscreen request description (and, indeed, desktop-shell does all this).

For reference, contrast with the corresponding, stricter wording in the obsolete xdg-shell-unstable-v6 protocol for the fullscreen state:

The window geometry specified in the configure event must be obeyed by the client.

Signed-off-by: Alexandros Frantzis alexandros.frantzis@collabora.com

Edited by Alexandros Frantzis

Merge request reports