diff --git a/sway/tree/view.c b/sway/tree/view.c index d77bd07d5..e8e8580af 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -1029,6 +1029,9 @@ void view_child_destroy(struct sway_view_child *child) { wl_list_for_each_safe(subchild, tmpchild, &child->children, link) { wl_list_remove(&subchild->link); subchild->parent = NULL; + // The subchild lost its parent link, so it cannot see that the parent + // is unmapped. Unmap it directly. + subchild->mapped = false; } wl_list_remove(&child->surface_commit.link);