[PATCH 1/3] clients: Moving and rotating transient surfaces
Derek Foreman
derekf at osg.samsung.com
Tue Oct 6 13:20:37 PDT 2015
On 06/10/15 11:48 AM, Ben Hummon wrote:
> Transient surfaces use child/parent surfaces for stacking order. This
> change resloves an issue in which attempting to move or rotate a
> toplevel transient surface can move or rotate its ancestor.
> ---
This fixes an issue I introduced when trying to stop rotations from
spinning pop-up menus.
Thanks!
Reviewed-by: Derek Foreman <derekf at osg.samsung.com>
Tested-by: Derek Foreman <derekf at osg.samsung.com>
> The moving/rotating issue can be seen by creating transient surfaces
> in the weston stacking demo.
>
> desktop-shell/shell.c | 13 +++++--------
> 1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index 3c6a3da..09ce5e1 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -486,18 +486,15 @@ find_toplevel_surface(struct shell_surface *in_surface)
> {
> struct shell_surface *surface = in_surface;
>
> - if (!surface)
> - return NULL;
> -
> - while (surface->parent)
> + while (surface) {
> + if (surface->type == SHELL_SURFACE_TOPLEVEL)
> + return surface;
> surface = get_shell_surface(surface->parent);
> + }
>
> /* If no top level surface was found, just use whatever surface was
> originally provided. */
> - if (!surface || surface->type != SHELL_SURFACE_TOPLEVEL)
> - surface = in_surface;
> -
> - return surface;
> + return in_surface;
> }
>
> static void
>
More information about the wayland-devel
mailing list