Update sibling indices after a node is removed.

With change 104392e the code to update node indices on removal was erronously removed.
The out of date indices would cause crashes while selecting nodes in a graph editor (e.g. animation tree) and selected nodes are oftern pushed to beginning or end of the child list for the parent.
This commit is contained in:
Samuele Panzeri 2023-04-06 20:47:57 +02:00
parent 92b7a9603a
commit 404f24b5c4
1 changed files with 4 additions and 0 deletions

View File

@ -1215,6 +1215,10 @@ void Node::remove_child(Node *p_child) {
child_count = data.children.size(); child_count = data.children.size();
children = data.children.ptrw(); children = data.children.ptrw();
for (int i = idx; i < child_count; i++) {
children[i]->data.index = i;
}
notification(NOTIFICATION_CHILD_ORDER_CHANGED); notification(NOTIFICATION_CHILD_ORDER_CHANGED);
emit_signal(SNAME("child_order_changed")); emit_signal(SNAME("child_order_changed"));