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

Jonas Ã…dahl jadahl at gmail.com
Fri Nov 18 01:28:56 UTC 2016


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

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