Fix switching WindowDialog types leaves garbage buttons

We can distinguish between node-specific children and custom children by `child->is_owned_by_parent()`.

Fixes: #16350
This commit is contained in:
Link 2018-03-07 08:21:46 +08:00 committed by Link Doyle
parent 2f3c45f55e
commit 611c050469
1 changed files with 4 additions and 1 deletions

View File

@ -2502,7 +2502,10 @@ void Node::replace_by(Node *p_node, bool p_keep_data) {
Node *child = get_child(0);
remove_child(child);
p_node->add_child(child);
if (!child->is_owned_by_parent()) {
// add the custom children to the p_node
p_node->add_child(child);
}
}
p_node->set_owner(owner);