On Apr 11, 2016, at 2:59 AM, Olivier Fourdan <[email protected]> wrote:
> 
> Some application may wish to restrict their window in size, but
> xdg-shell has no mechanism for the client to specify a maximum or
> minimum size.
> 
> 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_max_size" and "set_min_size" to xdg-shell so that
> the client can tell the compositor what would be its smallest/largest
> acceptable size, and that the compositor can decide if maximize or
> fullscreen is achievable, draw an accurate animation, etc.
> 
> Signed-off-by: Olivier Fourdan <[email protected]>
> Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=764413

Looks good to me. (Note: I'm a novice reviewer.)

Reviewed-by: Yong Bakos <[email protected]>

yong


> ---
> 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 multiple mismatch of min/max in the description
>     Remove mention of "unscaled", specify window geometry coordinates
>     and refer to set_window_geometry.
> v5: Fix typos and remove "preferred" from the name and description as
>     requested by several people on the ML and irc.
> 
> 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..8ab84f5 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_max_size">
> +      <description summary="set the maximum size">
> +     Set a maximum size for the window.
> +
> +     The client can specify a maximum size so that the compositor does
> +     not try to configure the window beyond this size.
> +
> +     The width and height arguments are in window geometry coordinates.
> +     See set_window_geometry.
> +
> +     The compositor can use this information to allow or disallow
> +     different states like maximize or fullscreen and draw accurate
> +     animations.
> +
> +     Similarly, a tiling window manager may use this information to
> +     place and resize client windows in a more effective way.
> +
> +     If never set, the maximum 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 expected maximum size in the given
> +     dimension. As a result, a client wishing to reset the 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_min_size">
> +      <description summary="set the minimum size">
> +     Set a minimum size for the window.
> +
> +     The client can specify a minimum size so that the compositor does
> +     not try to configure the window below this size.
> +
> +     The width and height arguments are in window geometry coordinates.
> +     See set_window_geometry.
> +
> +     The compositor can use this information to allow or disallow
> +     different states like maximize or fullscreen and draw accurate
> +     animations.
> +
> +     Similarly, a tiling window manager may use this information to
> +     place and resize client windows in a more effective way.
> +
> +     If never set, the minimum 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 expected minimum size in the given
> +     dimension. As a result, a client wishing to reset the 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
> 

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to