瀏覽代碼

Fix reselecting scene tree node after inspecting a resource

This broke when the `node_selected` connection was removed in #91435.
Here it's returned, but the emit is removed from `_node_removed`. That
preserves the earlier fix while allowing nodes to be reselected.
Anni Ryynänen 1 年之前
父節點
當前提交
eed6f4fef4
共有 2 個文件被更改,包括 1 次插入1 次删除
  1. 0 1
      editor/gui/scene_tree_editor.cpp
  2. 1 0
      editor/scene_tree_dock.cpp

+ 0 - 1
editor/gui/scene_tree_editor.cpp

@@ -589,7 +589,6 @@ void SceneTreeEditor::_node_removed(Node *p_node) {
 
 	if (p_node == selected) {
 		selected = nullptr;
-		emit_signal(SNAME("node_selected"));
 	}
 }
 

+ 1 - 0
editor/scene_tree_dock.cpp

@@ -4495,6 +4495,7 @@ SceneTreeDock::SceneTreeDock(Node *p_scene_root, EditorSelection *p_editor_selec
 	scene_tree->set_v_size_flags(SIZE_EXPAND | SIZE_FILL);
 	scene_tree->connect("rmb_pressed", callable_mp(this, &SceneTreeDock::_tree_rmb));
 
+	scene_tree->connect("node_selected", callable_mp(this, &SceneTreeDock::_node_selected), CONNECT_DEFERRED);
 	scene_tree->connect("node_renamed", callable_mp(this, &SceneTreeDock::_node_renamed), CONNECT_DEFERRED);
 	scene_tree->connect("node_prerename", callable_mp(this, &SceneTreeDock::_node_prerenamed));
 	scene_tree->connect("open", callable_mp(this, &SceneTreeDock::_load_request));