summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
authorEricEzaM <itsjusteza@gmail.com>2021-07-24 23:12:34 +1000
committerEric M <itsjusteza@gmail.com>2021-10-01 18:16:38 +1000
commite519ef31f28622ff47d5fcb4f0d67f0de94903c2 (patch)
tree6f291f1384b16035a450b3a4fec279e93b84ab0a /editor
parent8be97e3b51f5adbee0f9f5d3193da53680a44695 (diff)
Fixed drag and drop not respecting type on exported arrays.
Diffstat (limited to 'editor')
-rw-r--r--editor/editor_properties_array_dict.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp
index 9cecb62c66..9b5dc8851c 100644
--- a/editor/editor_properties_array_dict.cpp
+++ b/editor/editor_properties_array_dict.cpp
@@ -429,6 +429,12 @@ void EditorPropertyArray::_button_draw() {
bool EditorPropertyArray::_is_drop_valid(const Dictionary &p_drag_data) const {
String allowed_type = Variant::get_type_name(subtype);
+ // When the subtype is of type Object, an additional subtype may be specified in the hint string
+ // (e.g. Resource, Texture2D, ShaderMaterial, etc). We want the allowed type to be that, not just "Object".
+ if (subtype == Variant::OBJECT && subtype_hint_string != "") {
+ allowed_type = subtype_hint_string;
+ }
+
Dictionary drag_data = p_drag_data;
if (drag_data.has("type") && String(drag_data["type"]) == "files") {