Преглед изворни кода

Stop EditorNode from refreshing the current scene tab when not needed

chocola-mint пре 9 месеци
родитељ
комит
86a6794a4a
1 измењених фајлова са 10 додато и 1 уклоњено
  1. 10 1
      editor/editor_node.cpp

+ 10 - 1
editor/editor_node.cpp

@@ -1111,7 +1111,14 @@ void EditorNode::_resources_reimported(const Vector<String> &p_resources) {
 		ap->stop(true);
 	}
 
+	// Only refresh the current scene tab if it's been reimported.
+	// Otherwise the scene tab will try to grab focus unnecessarily.
+	bool should_refresh_current_scene_tab = false;
+	const String current_scene_tab = editor_data.get_scene_path(current_tab);
 	for (const String &E : scenes_reimported) {
+		if (!should_refresh_current_scene_tab && E == current_scene_tab) {
+			should_refresh_current_scene_tab = true;
+		}
 		reload_scene(E);
 	}
 
@@ -1121,7 +1128,9 @@ void EditorNode::_resources_reimported(const Vector<String> &p_resources) {
 	scenes_reimported.clear();
 	resources_reimported.clear();
 
-	_set_current_scene_nocheck(current_tab);
+	if (should_refresh_current_scene_tab) {
+		_set_current_scene_nocheck(current_tab);
+	}
 }
 
 void EditorNode::_sources_changed(bool p_exist) {