diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 8f3d91cdb96..e1160a0ca1d 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1111,7 +1111,14 @@ void EditorNode::_resources_reimported(const Vector &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 &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) {