Jelajahi Sumber

Merge pull request #102874 from YeldhamDev/fix_fav_no_parent

Fix error with favorited properties with open sub-inspectors
Rémi Verschelde 6 bulan lalu
induk
melakukan
ba7b500b55
1 mengubah file dengan 20 tambahan dan 7 penghapusan
  1. 20 7
      editor/editor_inspector.cpp

+ 20 - 7
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 (current_selected && ep->property == current_selected) {
-					ep->select(current_focusable);
+				// 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);
+					}
 				}
 			}
 		}
@@ -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);
+					}
 				}
 			}
 		}