fix remove_and_skip()
This commit is contained in:
parent
6d15e15732
commit
3f78f1f17d
1 changed files with 8 additions and 7 deletions
15
scene/main/node.cpp
Normal file → Executable file
15
scene/main/node.cpp
Normal file → Executable file
|
@ -2020,12 +2020,13 @@ void Node::remove_and_skip() {
|
|||
|
||||
bool clear = true;
|
||||
for (int i = 0; i < data.children.size(); i++) {
|
||||
if (!data.children[i]->get_owner())
|
||||
Node *c_node = data.children[i];
|
||||
if (!c_node->get_owner())
|
||||
continue;
|
||||
|
||||
remove_child(data.children[i]);
|
||||
data.children[i]->_propagate_replace_owner(this, NULL);
|
||||
children.push_back(data.children[i]);
|
||||
remove_child(c_node);
|
||||
c_node->_propagate_replace_owner(this, NULL);
|
||||
children.push_back(c_node);
|
||||
clear = false;
|
||||
break;
|
||||
}
|
||||
|
@ -2036,9 +2037,9 @@ void Node::remove_and_skip() {
|
|||
|
||||
while (!children.empty()) {
|
||||
|
||||
Node *c = children.front()->get();
|
||||
data.parent->add_child(c);
|
||||
c->_propagate_replace_owner(NULL, new_owner);
|
||||
Node *c_node = children.front()->get();
|
||||
data.parent->add_child(c_node);
|
||||
c_node->_propagate_replace_owner(NULL, new_owner);
|
||||
children.pop_front();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue