From 60c4954b8a0667ad5e5f65110d0342b171f3a2a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Mon, 5 Mar 2012 20:51:34 -0500 Subject: [PATCH] shell: Put popups and transients on top of their parent In other words, don't map the panel menu under the panel. --- src/shell.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/shell.c b/src/shell.c index c40fc6b5..5d2c239e 100644 --- a/src/shell.c +++ b/src/shell.c @@ -1489,6 +1489,7 @@ map(struct weston_shell *base, struct weston_surface *surface, struct weston_compositor *compositor = shell->compositor; struct shell_surface *shsurf; enum shell_surface_type surface_type = SHELL_SURFACE_NONE; + struct weston_surface *parent; int panel_height = 0; shsurf = get_shell_surface(surface); @@ -1561,6 +1562,11 @@ map(struct weston_shell *base, struct weston_surface *surface, compositor->state = WESTON_COMPOSITOR_IDLE; } break; + case SHELL_SURFACE_POPUP: + case SHELL_SURFACE_TRANSIENT: + parent = shsurf->parent->surface; + wl_list_insert(parent->layer_link.prev, &surface->layer_link); + break; case SHELL_SURFACE_FULLSCREEN: case SHELL_SURFACE_NONE: break;