summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/ustring.cpp3
-rw-r--r--editor/editor_file_dialog.cpp2
2 files changed, 4 insertions, 1 deletions
diff --git a/core/ustring.cpp b/core/ustring.cpp
index 6a1dc2295f..345db0eb13 100644
--- a/core/ustring.cpp
+++ b/core/ustring.cpp
@@ -3792,7 +3792,8 @@ bool String::is_valid_float() const {
String String::path_to_file(const String &p_path) const {
- String src = this->replace("\\", "/").get_base_dir();
+ // Don't get base dir for src, this is expected to be a dir already.
+ String src = this->replace("\\", "/");
String dst = p_path.replace("\\", "/").get_base_dir();
String rel = src.path_to(dst);
if (rel == dst) // failed
diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp
index 7fc989b5e9..03da065658 100644
--- a/editor/editor_file_dialog.cpp
+++ b/editor/editor_file_dialog.cpp
@@ -958,6 +958,8 @@ String EditorFileDialog::get_current_path() const {
}
void EditorFileDialog::set_current_dir(const String &p_dir) {
+ if (p_dir.is_rel_path())
+ dir_access->change_dir(OS::get_singleton()->get_resource_dir());
dir_access->change_dir(p_dir);
update_dir();
invalidate();