[PATCH v5 xdg-shell-unstable-v6] xdg-shell: Add min/max size requests

Mike Blumenkrantz michael.blumenkrantz at gmail.com
Mon Apr 11 19:15:01 UTC 2016


I think this should probably use uint instead of int for params since zero
is the "unset" number. Otherwise you have to write something about negative
sizes.

On Mon, Apr 11, 2016 at 3:11 PM Jasper St. Pierre <jstpierre at mecheye.net>
wrote:

> On Mon, Apr 11, 2016 at 12:59 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 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 <ofourdan at redhat.com>
> > Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=764413
> > ---
> >  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.
>
> Delete this sentence, and merge it into the paragraph below.
>
> > +       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.
>
> If never set, or a value of zero in the request, means that the client
> has no expected...
>
> > +      </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
> >
>
>
>
> --
>   Jasper
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20160411/c6d4e6a1/attachment-0001.html>


More information about the wayland-devel mailing list