Browse Source

Fix resource property editor incorrectly accepting script files

See discussion on #102534. Before this fix, it was possible to drag a
file `CustomResource.gd` with `class_name CustomResource` onto a
property of type `CustomResource`. Of course, the intention is that only
`Resource`s with the `CustomResource` script attached are accepted.

(Actually accepting the script, but creating a resource from it
automatically, is left as a future improvement.)
Thomas ten Cate 7 months ago
parent
commit
cd8eaaa07b
1 changed files with 5 additions and 3 deletions
  1. 5 3
      editor/editor_resource_picker.cpp

+ 5 - 3
editor/editor_resource_picker.cpp

@@ -686,9 +686,11 @@ bool EditorResourcePicker::_is_drop_valid(const Dictionary &p_drag_data) const {
 			return true;
 		}
 
-		StringName custom_class = EditorNode::get_singleton()->get_object_custom_type_name(res.ptr());
-		if (_is_type_valid(custom_class, allowed_types)) {
-			return true;
+		if (res->get_script()) {
+			StringName custom_class = EditorNode::get_singleton()->get_object_custom_type_name(res->get_script());
+			if (_is_type_valid(custom_class, allowed_types)) {
+				return true;
+			}
 		}
 	}