From 22906f7fce550f57528df6b33049b9dc74f87abc Mon Sep 17 00:00:00 2001 From: Mykyta Holubakha Date: Tue, 17 Oct 2017 22:32:22 +0300 Subject: [PATCH] handlers: preserve parent pointer value --- sway/handlers.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sway/handlers.c b/sway/handlers.c index 6ccf2b11..33e75d6b 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -552,7 +552,7 @@ static void handle_view_destroyed(wlc_handle handle) { if (view) { bool fullscreen = swayc_is_fullscreen(view); remove_view_from_scratchpad(view); - swayc_t *parent = destroy_view(view); + swayc_t *parent = destroy_view(view), *iter = NULL; if (parent) { ipc_event_window(parent, "close"); @@ -566,17 +566,18 @@ static void handle_view_destroyed(wlc_handle handle) { } if (fullscreen) { - while (parent) { - if (parent->fullscreen) { - parent->fullscreen = NULL; + iter = parent; + while (iter) { + if (iter->fullscreen) { + iter->fullscreen = NULL; break; } - parent = parent->parent; + iter = iter->parent; } } - arrange_windows(parent, -1, -1); + arrange_windows(iter ? iter : parent, -1, -1); } } else { // Is it unmanaged?