aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2017-10-17 16:56:06 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2017-10-23 21:17:49 -0400
commitcf43670529a7498d0f40c1e4e25e32734234de18 (patch)
tree04eee61b380dec5242db6a002681ddd18d61505d
parentRemove broken link to Spanish translation (diff)
downloadsway-cf43670529a7498d0f40c1e4e25e32734234de18.tar.gz
sway-cf43670529a7498d0f40c1e4e25e32734234de18.tar.zst
sway-cf43670529a7498d0f40c1e4e25e32734234de18.zip
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 6ccf2b11..33e75d6b 100644
--- a/sway/handlers.c
+++ b/sway/handlers.c
@@ -552,7 +552,7 @@ static void handle_view_destroyed(wlc_handle handle) {
552 if (view) { 552 if (view) {
553 bool fullscreen = swayc_is_fullscreen(view); 553 bool fullscreen = swayc_is_fullscreen(view);
554 remove_view_from_scratchpad(view); 554 remove_view_from_scratchpad(view);
555 swayc_t *parent = destroy_view(view); 555 swayc_t *parent = destroy_view(view), *iter = NULL;
556 if (parent) { 556 if (parent) {
557 ipc_event_window(parent, "close"); 557 ipc_event_window(parent, "close");
558 558
@@ -566,17 +566,18 @@ static void handle_view_destroyed(wlc_handle handle) {
566 } 566 }
567 567
568 if (fullscreen) { 568 if (fullscreen) {
569 while (parent) { 569 iter = parent;
570 if (parent->fullscreen) { 570 while (iter) {
571 parent->fullscreen = NULL; 571 if (iter->fullscreen) {
572 iter->fullscreen = NULL;
572 break; 573 break;
573 } 574 }
574 parent = parent->parent; 575 iter = iter->parent;
575 } 576 }
576 } 577 }
577 578
578 579
579 arrange_windows(parent, -1, -1); 580 arrange_windows(iter ? iter : parent, -1, -1);
580 } 581 }
581 } else { 582 } else {
582 // Is it unmanaged? 583 // Is it unmanaged?