view: Mark subchildren as unmapped in view_child_destroy

The subchildren lose their parent association at this point, so they
will not be able to see that the parent is unmapped.

Instead, just set the subchildren to be unmapped directly.

(cherry picked from commit 79e43b19d7)
This commit is contained in:
Kenny Levinsen 2021-02-19 18:41:04 +01:00 committed by Simon Ser
parent ad718158b6
commit ec1c8143b0

View File

@ -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_for_each_safe(subchild, tmpchild, &child->children, link) {
wl_list_remove(&subchild->link); wl_list_remove(&subchild->link);
subchild->parent = NULL; 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); wl_list_remove(&child->surface_commit.link);