summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--editor/scene_tree_dock.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 30050901d9..02c8a03ac6 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -1181,7 +1181,16 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
case TOOL_OPEN_DOCUMENTATION: {
List<Node *> selection = editor_selection->get_selected_node_list();
for (const Node *node : selection) {
- ScriptEditor::get_singleton()->goto_help("class_name:" + node->get_class());
+ String class_name;
+ Ref<Script> script_base = node->get_script();
+ if (script_base.is_valid()) {
+ class_name = script_base->get_global_name();
+ }
+ if (class_name.is_empty()) {
+ class_name = node->get_class();
+ }
+
+ ScriptEditor::get_singleton()->goto_help("class_name:" + class_name);
}
EditorNode::get_singleton()->set_visible_editor(EditorNode::EDITOR_SCRIPT);
} break;