[PATCH wayland-protocols 3/4 v2] xdg-shell: Add resize_x/y constrain adjustment to positioner
Jonas Ådahl
jadahl at gmail.com
Fri Jul 29 09:00:44 UTC 2016
On Fri, Jul 29, 2016 at 10:58:47AM +0200, Quentin Glidic wrote:
> On 29/07/2016 06:04, Jonas Ådahl wrote:
> > In order to get feedback of available space where a client can create
> > its popup, let it create requset that its popup rectangle being resized
> > would it not fit the within the work area. This adds two new constrain
> > adjustment values to the adjustment enum, and dimension parameters to
> > the xdg_popup.configure event.
> >
> > The existing constrain adjustment actions take precedence, and resizing
> > will only be triggered if all other adjustments requested didn't manage
> > to make the popup rectangle fully visible.
> >
> > Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
> > Acked-by: Quentin Glidic <sardemff7+git at sardemff7.net>
> > ---
> >
> > Chances since v1: none
>
> Shouldn’t you have squashed with the positioner patch directly?
Could have, but the positioner patch is closer to being landable, so I
let it have only minor changes in this iteration, and continued to have
this as a separate patch.
Jonas
>
> Cheers,
>
>
> >
> >
> > unstable/xdg-shell/xdg-shell-unstable-v6.xml | 40 +++++++++++++++++++++-------
> > 1 file changed, 30 insertions(+), 10 deletions(-)
> >
> > diff --git a/unstable/xdg-shell/xdg-shell-unstable-v6.xml b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> > index 2c8f636..ef45ff4 100644
> > --- a/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> > +++ b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> > @@ -249,6 +249,19 @@
> > </request>
> >
> > <enum name="constrain_adjustment" bitfield="true">
> > + <description summary="constraint adjustments">
> > + The constrain adjustment value define ways the compositor will adjust
> > + the position of the surface, if the unadjusted position would result
> > + in the surface being partly constrained.
> > +
> > + What a constrained surface means is compositor specific, but it could
> > + for example be partly outside of the work area of a monitor.
> > +
> > + Multiple constrain adjustment values can be combined, in which case
> > + they have a defined precedence. The order of adjustments is: flip,
> > + slide then resize.
> > + </description>
> > +
> > <entry name="none" value="0">
> > <description summary="don't move the child surface when constrained">
> > Don't alter the surface position even if it is constrained on some
> > @@ -268,8 +281,6 @@
> > x axis until either the edge in the direction of the gravity is
> > unconstrained or the edge in the opposite direction of the gravity is
> > constrained.
> > -
> > - If 'slide_x' is combined with 'flip_x', 'flip_x' takes precedence.
> > </description>
> > </entry>
> > <entry name="slide_y" value="2">
> > @@ -285,8 +296,6 @@
> > y axis until either the edge in the direction of the gravity is
> > unconstrained or the edge in the opposite direction of the gravity is
> > constrained.
> > -
> > - If 'slide_y' is combined with 'flip_y', 'flip_y' takes precedence.
> > </description>
> > </entry>
> > <entry name="flip_x" value="4">
> > @@ -297,9 +306,8 @@
> > 'left', change the gravity to 'right' and the anchor to 'right'.
> >
> > If the adjusted position also ends up being constrained, the resulting
> > - position will be the one before the adjustment. If the resulting
> > - position is still constrained, and 'flip_x' is combined with
> > - 'slide_x', the position is adjusted according to 'slide_x'.
> > + position of the flip_x adjustment will be the one before the
> > + adjustment.
> > </description>
> > </entry>
> > <entry name="flip_y" value="8">
> > @@ -310,9 +318,19 @@
> > 'bottom', change the gravity to 'top' and the anchor to 'top'.
> >
> > If the adjusted position also ends up being constrained, the resulting
> > - position will be the one before the adjustment. If the resulting
> > - position is still constrained, and 'flip_y' is combined with
> > - 'slide_y', the position is adjusted according to 'slide_y'.
> > + position of the flip_y adjustment will be the one before the
> > + adjustment.
> > + </description>
> > + </entry>
> > + <entry name="resize_x" value="16">
> > + <description summary="horizontally resize the surface">
> > + Resize the surface horizontally so that it is completely
> > + unconstrained.
> > + </description>
> > + </entry>
> > + <entry name="resize_y" value="32">
> > + <description summary="vertically resize the surface">
> > + Resize the surface vertically so that it is completely unconstrained.
> > </description>
> > </entry>
> > </enum>
> > @@ -1039,6 +1057,8 @@
> > summary="x position relative to parent surface window geometry"/>
> > <arg name="y" type="int"
> > summary="y position relative to parent surface window geometry"/>
> > + <arg name="width" type="int" summary="window geometry width"/>
> > + <arg name="height" type="int" summary="window geometry height"/>
> > </event>
> >
> > <event name="popup_done">
> >
>
>
> --
>
> Quentin “Sardem FF7” Glidic
More information about the wayland-devel
mailing list