aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-10-17 16:56:06 -0400
committerDrew DeVault <sir@cmpwn.com>2017-10-23 21:17:49 -0400
commitcf43670529a7498d0f40c1e4e25e32734234de18 (patch)
tree04eee61b380dec5242db6a002681ddd18d61505d
parent23bc0b8c6aa2b25061b90981d72058fea0a1abf4 (diff)
downloadsway-cf43670529a7498d0f40c1e4e25e32734234de18.zip
sway-cf43670529a7498d0f40c1e4e25e32734234de18.tar.gz
sway-cf43670529a7498d0f40c1e4e25e32734234de18.tar.bz2
Merge pull request #1412 from Hummer12007/rcfix
handlers: preserve parent pointer value
-rw-r--r--sway/handlers.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sway/handlers.c b/sway/handlers.c
index 6ccf2b1..33e75d6 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?