summaryrefslogtreecommitdiff
path: root/src/shell.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2012-03-05 20:51:34 -0500
committerKristian Høgsberg <krh@bitplanet.net>2012-03-05 20:51:34 -0500
commit60c4954b8a0667ad5e5f65110d0342b171f3a2a2 (patch)
treeeb95a01f7dd0cd144b3389a8496ba6a1e2922206 /src/shell.c
parentb435e84d5a2039c39e926947deeb20de2ca9dbab (diff)
shell: Put popups and transients on top of their parent
In other words, don't map the panel menu under the panel.
Diffstat (limited to 'src/shell.c')
-rw-r--r--src/shell.c6
1 files changed, 6 insertions, 0 deletions
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;