Skip to content

Commit 62b6241

Browse files
committed
fix dialog opening stuff
1 parent 56f878c commit 62b6241

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

loader/src/loader/SettingNodeV3.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,12 +409,14 @@ void FileSettingNodeV3::onPickFile(CCObject*) {
409409
)->show();
410410
}
411411
});
412+
std::error_code ec;
412413
m_pickListener.setFilter(file::pick(
413414
this->getSetting()->isFolder() ?
414415
file::PickMode::OpenFolder :
415416
(this->getSetting()->useSaveDialog() ? file::PickMode::SaveFile : file::PickMode::OpenFile),
416417
{
417-
dirs::getGameDir(),
418+
// Prefer opening the current path directly if possible
419+
m_path.empty() || !std::filesystem::exists(m_path.parent_path(), ec) ? dirs::getGameDir() : m_path,
418420
this->getSetting()->getFilters().value_or(std::vector<file::FilePickOptions::Filter>())
419421
}
420422
));

loader/src/platform/windows/nfdwin.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ Result<> nfdPick(
182182
}
183183
if (options.defaultPath && options.defaultPath.value().wstring().size()) {
184184
std::filesystem::path path = options.defaultPath.value();
185+
path.make_preferred();
185186
if (mode == NFDMode::OpenFile || mode == NFDMode::SaveFile) {
186187
if (!std::filesystem::exists(path) || !std::filesystem::is_directory(path)) {
187188
if (path.has_filename()) {

0 commit comments

Comments
 (0)