diff --git a/sway/handlers.c b/sway/handlers.c index d37142a9b..6ccf2b11a 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -554,10 +554,6 @@ static void handle_view_destroyed(wlc_handle handle) { remove_view_from_scratchpad(view); swayc_t *parent = destroy_view(view); if (parent) { - if (fullscreen) { - parent->fullscreen = NULL; - } - ipc_event_window(parent, "close"); // Destroy empty workspaces @@ -569,6 +565,17 @@ static void handle_view_destroyed(wlc_handle handle) { parent = destroy_workspace(parent); } + if (fullscreen) { + while (parent) { + if (parent->fullscreen) { + parent->fullscreen = NULL; + break; + } + parent = parent->parent; + } + } + + arrange_windows(parent, -1, -1); } } else {