diff --git a/sway/tree/view.c b/sway/tree/view.c index e7a267ec5..fa27ec36b 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -104,11 +104,6 @@ void view_set_fullscreen(struct sway_view *view, bool fullscreen) { } void view_close(struct sway_view *view) { - if (view->is_fullscreen) { - struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); - ws->sway_workspace->fullscreen = NULL; - } - if (view->impl->close) { view->impl->close(view); } @@ -232,6 +227,11 @@ void view_unmap(struct sway_view *view) { wl_signal_emit(&view->events.unmap, view); + if (view->is_fullscreen) { + struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); + ws->sway_workspace->fullscreen = NULL; + } + view_damage(view, true); wl_list_remove(&view->surface_new_subsurface.link);