From 5031cbe7b41bbeb1cd04cfc6c9b301d75cb21385 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Thu, 5 Dec 2013 19:01:21 -0200 Subject: [PATCH] shell: Don't try to switch to a NULL shell surface. Fixes the crash from alt+tab when there's a fullscreen surface. --- desktop-shell/shell.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index f87da92f0..632579ff4 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -5172,10 +5172,9 @@ switcher_next(struct switcher *switcher) wl_list_for_each(view, &ws->layer.view_list, layer_link) { shsurf = get_shell_surface(view->surface); - switch (shsurf->type) { - case SHELL_SURFACE_TOPLEVEL: - if (shsurf->parent) - break; + if (shsurf && + shsurf->type == SHELL_SURFACE_TOPLEVEL && + shsurf->parent == NULL) { if (first == NULL) first = view->surface; if (prev == switcher->current) @@ -5184,12 +5183,6 @@ switcher_next(struct switcher *switcher) view->alpha = 0.25; weston_view_geometry_dirty(view); weston_surface_damage(view->surface); - break; - case SHELL_SURFACE_POPUP: - case SHELL_SURFACE_XWAYLAND: - case SHELL_SURFACE_NONE: - default: - break; } if (is_black_surface(view->surface, NULL)) {