aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sway/handlers.c13
1 files 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?