[PATCH] xdg-shell: clarify popup constrain's slide mechanism

Jonas Ådahl jadahl at gmail.com
Mon Nov 21 11:52:03 UTC 2016


On Mon, Nov 21, 2016 at 06:36:49AM -0500, Mike Blumenkrantz wrote:
> On Fri, 18 Nov 2016 09:28:56 +0800
> Jonas Ådahl <jadahl at gmail.com> wrote:
> 
> > On Wed, Nov 16, 2016 at 10:23:59AM -0500, Mike Blumenkrantz wrote:
> > > some restrictions must be placed on this or else it becomes legal for
> > > the compositor to place popups in unexpected locations when sliding
> > > is allowed
> > > 
> > > Signed-off-by: Mike Blumenkrantz <zmike at osg.samsung.com>
> > > ---
> > >  unstable/xdg-shell/xdg-shell-unstable-v6.xml | 6 ++++--
> > >  1 file changed, 4 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/unstable/xdg-shell/xdg-shell-unstable-v6.xml b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> > > index 6053e3c..30cdaeb 100644
> > > --- a/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> > > +++ b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> > > @@ -256,7 +256,8 @@
> > >        </entry>
> > >        <entry name="slide_x" value="1">
> > >  	<description summary="move along the x axis until unconstrained">
> > > -	  Slide the surface along the x axis until it is no longer constrained.
> > > +	  Slide the surface along the x axis within the toplevel surface until it
> > > +	  is no longer constrained.  
> > 
> > This would break chained popup menus in GTK+. For example a menu chain
> > where eventually a menu now completely outside of the toplevel window
> > region hits the edge of monitor, and is supposed to slide (see
> > screenshot [0]).
> > 
> > So I think we should just limit the way we can slide in relation to the
> > parent. Maybe we should rather put the limitations somewhere more
> > generic? I.e. a popup can only ever be positioned so that its window
> > geometry "touches" (where touches means that there will be no space in
> > between) its parent window geometry, or something like that?
> > 
> > 
> > Jonas
> > 
> > 
> > [0] https://people.freedesktop.org/~jadahl/menu-slide-outside-of-toplevel.png
> > 
> 
> Hm, while I strongly disagree with any application design that requires this level of submenu chaining, I can see why we might need to support at least basic submenu positioning outside the toplevel. I think changing "toplevel" to "parent" in my patch would address that sufficiently?

It sounds like the "sliding within the parent" means the whole child
surface must be within the parent, which is not the case. Maybe better
with "Slide the surface along the x/y axis until it is no longer
constrained or doesn't touch the parent surface anymore." or something.


Jonas

> 
> > >  
> > >  	  First try to slide towards the direction of the gravity on the x axis
> > >  	  until either the edge in the opposite direction of the gravity is
> > > @@ -271,7 +272,8 @@
> > >        </entry>
> > >        <entry name="slide_y" value="2">
> > >  	<description summary="move along the y axis until unconstrained">
> > > -	  Slide the surface along the y axis until it is no longer constrained.
> > > +	  Slide the surface along the y axis within the toplevel surface until it
> > > +	  is no longer constrained.
> > >  
> > >  	  First try to slide towards the direction of the gravity on the y axis
> > >  	  until either the edge in the opposite direction of the gravity is
> > > -- 
> > > 2.5.5
> > > 
> > > _______________________________________________
> > > 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