diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 97335821374..96acec3c6e5 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -3782,13 +3782,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); + } } } } @@ -3841,6 +3844,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); + } } } }