|
@@ -429,11 +429,7 @@ void Node::move_child(Node *p_child, int p_pos) {
|
|
for (int i = motion_from; i <= motion_to; i++) {
|
|
for (int i = motion_from; i <= motion_to; i++) {
|
|
data.children[i]->notification(NOTIFICATION_MOVED_IN_PARENT);
|
|
data.children[i]->notification(NOTIFICATION_MOVED_IN_PARENT);
|
|
}
|
|
}
|
|
- for (const Map<StringName, GroupData>::Element *E = p_child->data.grouped.front(); E; E = E->next()) {
|
|
|
|
- if (E->get().group) {
|
|
|
|
- E->get().group->changed = true;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ p_child->_propagate_groups_dirty();
|
|
|
|
|
|
data.blocked--;
|
|
data.blocked--;
|
|
}
|
|
}
|
|
@@ -446,6 +442,18 @@ void Node::raise() {
|
|
data.parent->move_child(this, data.parent->data.children.size() - 1);
|
|
data.parent->move_child(this, data.parent->data.children.size() - 1);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void Node::_propagate_groups_dirty() {
|
|
|
|
+ for (const Map<StringName, GroupData>::Element *E = data.grouped.front(); E; E = E->next()) {
|
|
|
|
+ if (E->get().group) {
|
|
|
|
+ E->get().group->changed = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (int i = 0; i < data.children.size(); i++) {
|
|
|
|
+ data.children[i]->_propagate_groups_dirty();
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
void Node::add_child_notify(Node *p_child) {
|
|
void Node::add_child_notify(Node *p_child) {
|
|
// to be used when not wanted
|
|
// to be used when not wanted
|
|
}
|
|
}
|