diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index ab8c0b056fb..58b02ed2b8a 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -3832,13 +3832,16 @@ void EditorInspector::update_tree() { ep->set_doc_path(doc_path); ep->set_internal(p.usage & PROPERTY_USAGE_INTERNAL); - ep->update_property(); - ep->_update_flags(); - ep->update_editor_property_status(); - ep->update_cache(); + // If this property is favorited, it won't be in the tree yet. So don't do this setup right now. + if (ep->is_inside_tree()) { + ep->update_property(); + ep->_update_flags(); + ep->update_editor_property_status(); + ep->update_cache(); - if (current_selected && ep->property == current_selected) { - ep->select(current_focusable); + if (current_selected && ep->property == current_selected) { + ep->select(current_focusable); + } } } } @@ -3891,6 +3894,16 @@ void EditorInspector::update_tree() { for (EditorProperty *ep : KV2.value) { vbox->add_child(ep); + + // Now that it's inside the tree, do the setup. + ep->update_property(); + ep->_update_flags(); + ep->update_editor_property_status(); + ep->update_cache(); + + if (current_selected && ep->property == current_selected) { + ep->select(current_focusable); + } } } }