summaryrefslogtreecommitdiffstats
path: root/editor/create_dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/create_dialog.cpp')
-rw-r--r--editor/create_dialog.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index 56500c71e2..204636e128 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -160,8 +160,13 @@ bool CreateDialog::_should_hide_type(const StringName &p_type) const {
String script_path = ScriptServer::get_global_class_path(p_type);
if (script_path.begins_with("res://addons/")) {
- if (!EditorNode::get_singleton()->is_addon_plugin_enabled(script_path.get_slicec('/', 3))) {
- return true; // Plugin is not enabled.
+ int i = script_path.find("/", 13); // 13 is length of "res://addons/".
+ while (i > -1) {
+ const String plugin_path = script_path.substr(0, i).path_join("plugin.cfg");
+ if (FileAccess::exists(plugin_path)) {
+ return !EditorNode::get_singleton()->is_addon_plugin_enabled(plugin_path);
+ }
+ i = script_path.find("/", i + 1);
}
}
}