shell: Put popups and transients on top of their parent

In other words, don't map the panel menu under the panel.
dev
Kristian Høgsberg 13 years ago
parent b435e84d5a
commit 60c4954b8a
  1. 6
      src/shell.c

@ -1489,6 +1489,7 @@ map(struct weston_shell *base, struct weston_surface *surface,
struct weston_compositor *compositor = shell->compositor; struct weston_compositor *compositor = shell->compositor;
struct shell_surface *shsurf; struct shell_surface *shsurf;
enum shell_surface_type surface_type = SHELL_SURFACE_NONE; enum shell_surface_type surface_type = SHELL_SURFACE_NONE;
struct weston_surface *parent;
int panel_height = 0; int panel_height = 0;
shsurf = get_shell_surface(surface); shsurf = get_shell_surface(surface);
@ -1561,6 +1562,11 @@ map(struct weston_shell *base, struct weston_surface *surface,
compositor->state = WESTON_COMPOSITOR_IDLE; compositor->state = WESTON_COMPOSITOR_IDLE;
} }
break; 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_FULLSCREEN:
case SHELL_SURFACE_NONE: case SHELL_SURFACE_NONE:
break; break;

Loading…
Cancel
Save