diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 31f9b3e56f2..5a5f3c82833 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -1297,6 +1297,13 @@ void FileSystemDock::_fs_changed() { _update_file_list(true); } + if (!select_after_scan.is_empty()) { + _navigate_to_path(select_after_scan); + select_after_scan.clear(); + import_dock_needs_update = true; + _update_import_dock(); + } + set_process(false); } @@ -1476,8 +1483,6 @@ void FileSystemDock::_try_duplicate_item(const FileOrFolder &p_item, const Strin EditorNode::get_singleton()->add_io_error(TTR("Cannot move a folder into itself.") + "\n" + old_path + "\n"); return; } - const_cast(this)->current_path = new_path; - Ref da = DirAccess::create(DirAccess::ACCESS_RESOURCES); if (p_item.is_file) { @@ -1917,6 +1922,7 @@ void FileSystemDock::_move_operation_confirm(const String &p_to_path, bool p_cop for (int i = 0; i < to_move.size(); i++) { if (to_move[i].path != new_paths[i]) { _try_duplicate_item(to_move[i], new_paths[i]); + select_after_scan = new_paths[i]; is_copied = true; } } diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index 1cde735cb8b..cc6c0ebf5cb 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -225,6 +225,7 @@ private: int history_max_size; String current_path; + String select_after_scan; bool initialized = false;