[PATCH v4 xdg-shell-unstable-v6] xdg-shell: add preferred min/max size requests

Yong Bakos junk at humanoriented.com
Thu Apr 7 15:16:13 UTC 2016


> On Apr 7, 2016, at 2:39 AM, Olivier Fourdan <ofourdan at redhat.com> wrote:
> 
> Some application may wish to restrict their window in size, but
> xdg-shell has no mechanism for the client to advertise such a maximum
> or minimum preferred size the compositor can use.
> 
> As a result, the compositor may try to maximize or fullscreen a window
> while the client would not allow for the requested size.
> 
> Add new requests "set_preferred_max_size" and "set_preferred_min_size"
> to xdg-shell so that the client can tell the compositor which would be
> its preferred smallest/largest acceptable size, so that he compositor
> can decide if maximize or fullscreen makes sense, draw an accurate
> animation, etc.
> 
> Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
> Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=764413

Hi Olivier,
Some minor spelling corrections below. (Same as the previous response,
replying again to associate with this latest patch version.) I'm happy
to correct these with my own separate patch after this is merged.


> ---
> v2: Rename the request to "set_preferred_max_size",
>     add "set_preferred_min_size" as well
> v3: Rebase above patch 72427 in branch xdg-shell-unstable-v6
>     Rephrase description to clarify the unscaled size and using 0 to
>     reset back the preferred size to an unspecified state
> v4: Patch the correct xml file (v6, not v5 <facepalm>)
>     Fix mutliple mismatch of min/max in the description

multiple


>     Remove mention of "unscaled", specify window geometry coordinates
>     and refer to set_window_geometry.
> 
> unstable/xdg-shell/xdg-shell-unstable-v6.xml | 60 ++++++++++++++++++++++++++++
> 1 file changed, 60 insertions(+)
> 
> diff --git a/unstable/xdg-shell/xdg-shell-unstable-v6.xml b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> index 3fc7d42..05f28f6 100644
> --- a/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> +++ b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> @@ -489,6 +489,66 @@
>       <arg name="states" type="array"/>
>     </event>
> 
> +    <request name="set_preferred_max_size">
> +      <description summary="set the preferred maximum size">
> +	Set a preferred maximum size for the window.
> +
> +	The client can specify a preferred maximum size to tell the
> +	compositor that a window should not be resized beyond this
> +	size.
> +
> +	The width and height arguments are in window geometry coordinates.
> +	See set_window_geometry.
> +
> +	The compositor may use this information from the client to allow
> +	or disallow different states like maximixe or fullscreen and

maximize


> +	draw accurate animations.
> +
> +	Similarily, a tiling window manager can use this information to

Similarly,


> +	place and resize client windows in a more effective way.
> +
> +	If never set, the size of the window is not limited by the client.
> +
> +	A value of zero in the request for either width, height or both
> +	means that the client has no preference regarding the maximum size
> +	in the given dimension. As a result, a client wishing to reset the
> +	preferred maximum size to an unspecified state can use zero for
> +	width and height in the request.
> +      </description>
> +      <arg name="width" type="int"/>
> +      <arg name="height" type="int"/>
> +    </request>
> +
> +    <request name="set_preferred_min_size">
> +      <description summary="set the preferred minimum size">
> +	Set a preferred minimum size for the window.
> +
> +	The client can specify a preferred minimum size to tell the
> +	compositor that a window should not be resized below this
> +	size.
> +
> +	The width and height arguments are in window geometry coordinates.
> +	See set_window_geometry.
> +
> +	The compositor may use this information from the client to allow
> +	or disallow different states like maximixe or fullscreen and

maximize


> +	draw accurate animations.
> +
> +	Similarily, a tiling window manager can use this information to

Similarly

yong


> +	place and resize client windows in a more effective way.
> +
> +	If never set, the size of the window is not limited by the client.
> +
> +	A value of zero in the request for either width, height or both
> +	means that the client has no preference regarding the minimum size
> +	in the given dimension. As a result, a client wishing to reset the
> +	preferred minimum size to an unspecified state can use zero for
> +	width and height in the request.
> +      </description>
> +      <arg name="width" type="int"/>
> +      <arg name="height" type="int"/>
> +    </request>
> +
>     <request name="set_maximized">
>       <description summary="maximize the window">
> 	Maximize the surface.
> -- 
> 2.5.5



More information about the wayland-devel mailing list