shell: Put popups and transients on top of their parent

In other words, don't map the panel menu under the panel.
diff --git a/src/shell.c b/src/shell.c
index c40fc6b..5d2c239 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -1489,6 +1489,7 @@
 	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 @@
 				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;