[PATCH wayland-protocols v3 18/17] xdg-shell: Soften fullscreen geometry requirements

Arnaud Vrac rawoul at gmail.com
Tue Nov 21 08:16:09 UTC 2017


On Tue, Nov 21, 2017 at 5:54 AM Jonas Ådahl <jadahl at gmail.com> wrote:

> Having a strict requirement on clients obeying the configured window
> geometry for fullscreen toplevel surfaces might have the side effect of
> making it harder or impossible to implement various hardware
> optimizations on certain system configurations. By softening
> requirements on the geometry while loosely defining the border fill, we
> remove that restriction.
>
> Clients that still want total control of the surrounding area can
> still for example prepare the attached buffers to match the configured
> surface size, or use subsurfaces in combination with wp_viewporter to
> make up a surface matching the fullscreen window geometry dimensions.
>
> Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
> ---
>  stable/xdg-shell/xdg-shell.xml | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/stable/xdg-shell/xdg-shell.xml
> b/stable/xdg-shell/xdg-shell.xml
> index 34e3a20..dc70c7a 100644
> --- a/stable/xdg-shell/xdg-shell.xml
> +++ b/stable/xdg-shell/xdg-shell.xml
> @@ -728,8 +728,11 @@
>        </entry>
>        <entry name="fullscreen" value="2" summary="the surface is
> fullscreen">
>         <description summary="the surface is fullscreen">
> -         The surface is fullscreen. The window geometry specified in the
> configure
> -         event must be obeyed by the client.
> +         The surface is fullscreen. 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. For more details, see
> +         xdg_toplevel.set_fullscreen.
>         </description>
>        </entry>
>        <entry name="resizing" value="3" summary="the surface is being
> resized">
> @@ -888,7 +891,7 @@
>
>         After requesting that the surface should be fullscreened, the
>         compositor will respond by emitting a configure event with the
> -       "fullscreen" state and the required window geometry. The client
> must
> +       "fullscreen" state and the fullscreen window geometry. The client
> must
>         also acknowledge the configure when committing the new content (see
>         ack_configure).
>
> @@ -899,7 +902,14 @@
>
>         If the surface doesn't cover the whole output, the compositor will
>         position the surface in the center of the output and compensate
> with
> -       black borders filling the rest of the output.
> +       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.
>        </description>
>        <arg name="output" type="object" interface="wl_output"
> allow-null="true"/>
>      </request>
> --
> 2.14.2
>

Very nice, thanks. The patch to on libweston-desktop to match this wording
is pretty simple, I'll push it if needed when libweston-desktop supports
the stable xdg-shell protocol.

Reviewed-by: Arnaud Vrac <rawoul at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20171121/061fcfab/attachment.html>


More information about the wayland-devel mailing list