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

Mike Blumenkrantz zmike at s-opensource.com
Mon Nov 21 11:36:49 UTC 2016


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?

> >  
> >  	  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