[PATCH wayland-protocols] xdg-shell: Introduce xdg_toplevel capabilities

Yong Bakos junk at humanoriented.com
Wed Jul 20 18:05:00 UTC 2016


> On Jul 15, 2016, at 4:00 AM, Jonas Ådahl <jadahl at gmail.com> wrote:
> 
> The xdg_toplevel capabilities are meant to let the compositor know what
> configurations a client can be configured to. This is meant to make it
> possible to disallow a compositor to maximize, fullscreen etc a
> surface, which would otherwise mandate the client to configure the
> surface according to dimension in the xdg_toplevel.configure event.
> 
> This makes it possible to create non-resizable surfaces as well as
> surfaces with only a certain aspect ratio allowed, by making them
> un-fullscreen:able and un-maximize:able.
> 
> Signed-off-by: Jonas Ådahl <jadahl at gmail.com>

This seems like a better strategy, making the client behavior and
compositor expectations part of the protocol. Other than the
entry -> request mistake that Quentin pointed out, this is

Reviewed-by: Yong Bakos <ybakos at humanoriented.com>

yong



> ---
> 
> This is an alternative solution to the s/must/should/ patch.
> 
> I made a separate enum, because certain state enum entries make no sense to
> support or not, since they don't mandate anything (resize, activated so far).
> 
> 
> Jonas
> 
> unstable/xdg-shell/xdg-shell-unstable-v6.xml | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
> 
> diff --git a/unstable/xdg-shell/xdg-shell-unstable-v6.xml b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> index 563e39b..73944a8 100644
> --- a/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> +++ b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> @@ -734,6 +734,29 @@
>       </entry>
>     </enum>
> 
> +    <enum name="capabilities">
> +      <description summary="toplevel capabilities">
> +	Certain xdg_toplevel states mandate certain client capabilities. For
> +	example while a fullscreen:ed client is required to configure itself
> +	according to the dimension in the configure event, some clients may not
> +	have this ability due to various reasons.
> +      </description>
> +      <entry name="maximize" value="1"
> +	     summary="the toplevel can be maximized"/>
> +      <entry name="fullscreen" value="2"
> +	     summary="the toplevel can be fullscreened"/>
> +    </enum>
> +
> +    <entry name="set_capabilities">
> +      <description summary="set capabilities">
> +	Notify the compositor about what capabilities this xdg_toplevel
> +	supports. This request can only be issued once and if so must be done
> +	before the initial state is comitted. The default capabilities are no
> +	capabilities.
> +      </description>
> +      <arg name="caps" type="array" summary="array of toplevel capabilities"/>
> +    </entry>
> +
>     <request name="set_max_size">
>       <description summary="set the maximum size">
> 	Set a maximum size for the window.
> -- 
> 2.7.4
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel



More information about the wayland-devel mailing list