From 404f24b5c417909bb30a2b8d06d17dab19bd450c Mon Sep 17 00:00:00 2001 From: Samuele Panzeri Date: Thu, 6 Apr 2023 20:47:57 +0200 Subject: [PATCH] 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. --- scene/main/node.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scene/main/node.cpp b/scene/main/node.cpp index d8375dbc9f1..352c8eb77f5 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -1215,6 +1215,10 @@ void Node::remove_child(Node *p_child) { child_count = data.children.size(); children = data.children.ptrw(); + for (int i = idx; i < child_count; i++) { + children[i]->data.index = i; + } + notification(NOTIFICATION_CHILD_ORDER_CHANGED); emit_signal(SNAME("child_order_changed"));