VeraCrypt
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/Main/GraphicUserInterface.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp
index a6d1ae2d..ba5f6840 100755
--- a/src/Main/GraphicUserInterface.cpp
+++ b/src/Main/GraphicUserInterface.cpp
@@ -1569,13 +1569,18 @@ namespace VeraCrypt
DirectoryPath GraphicUserInterface::SelectDirectory (wxWindow *parent, const wxString &message, bool existingOnly) const
{
+ /* Avoid OS leaking previously used directory when user choose not to save history */
+ wxString defaultPath;
+ if (!GetPreferences().SaveHistory)
+ defaultPath = wxGetHomeDir ();
+
return DirectoryPath (::wxDirSelector (!message.empty() ? message :
#ifdef __WXGTK__
wxDirSelectorPromptStr,
#else
L"",
#endif
- L"", wxDD_DEFAULT_STYLE | (existingOnly ? wxDD_DIR_MUST_EXIST : 0), wxDefaultPosition, parent).wc_str());
+ defaultPath, wxDD_DEFAULT_STYLE | (existingOnly ? wxDD_DIR_MUST_EXIST : 0), wxDefaultPosition, parent).wc_str());
}
FilePathList GraphicUserInterface::SelectFiles (wxWindow *parent, const wxString &caption, bool saveMode, bool allowMultiple, const list < pair <wstring, wstring> > &fileExtensions, const DirectoryPath &directory) const
@@ -1614,7 +1619,12 @@ namespace VeraCrypt
}
}
- wxFileDialog dialog (parent, !caption.empty() ? caption : LangString ["OPEN_TITLE"], wstring (directory), wxString(), wildcards, style);
+ /* Avoid OS leaking previously used directory when user choose not to save history */
+ wxString defaultDir = wstring (directory);
+ if (defaultDir.IsEmpty () && !GetPreferences().SaveHistory)
+ defaultDir = wxGetHomeDir ();
+
+ wxFileDialog dialog (parent, !caption.empty() ? caption : LangString ["OPEN_TITLE"], defaultDir, wxString(), wildcards, style);
if (dialog.ShowModal() == wxID_OK)
{