Files
AstralRinth/patches/pr-43.patch
2024-11-28 03:05:24 +03:00

47 lines
1.9 KiB
Diff

diff --git a/apps/app/src/main.rs b/apps/app/src/main.rs
index 6d429ffb..f261561f 100644
--- a/apps/app/src/main.rs
+++ b/apps/app/src/main.rs
@@ -188,7 +188,20 @@ fn main() {
.plugin(tauri_plugin_shell::init())
.plugin(
tauri_plugin_window_state::Builder::default()
- .with_filename("app-window-state.json")
+ .with_filename(
+ if std::env::current_dir()
+ .ok()
+ .map(|dir| dir.join("portable.txt").exists())
+ .unwrap_or(false)
+ {
+ std::env::current_dir()
+ .ok()
+ .map(|dir| dir.join("UserData/app-window-state.json").to_string_lossy().into_owned())
+ .unwrap()
+ } else {
+ "app-window-state.json".to_string()
+ },
+ )
.build(),
)
.setup(|app| {
diff --git a/packages/app-lib/src/state/dirs.rs b/packages/app-lib/src/state/dirs.rs
index 96148a91..038313d6 100644
--- a/packages/app-lib/src/state/dirs.rs
+++ b/packages/app-lib/src/state/dirs.rs
@@ -23,8 +23,13 @@ impl DirectoryInfo {
// Get the settings directory
// init() is not needed for this function
pub fn get_initial_settings_dir() -> Option<PathBuf> {
- Self::env_path("THESEUS_CONFIG_DIR")
- .or_else(|| Some(dirs::data_dir()?.join("AstralRinthApp")))
+ Self::env_path("THESEUS_CONFIG_DIR").or_else(|| {
+ if std::env::current_dir().ok()?.join("portable.txt").exists() {
+ Some(std::path::Path::new("UserData").to_path_buf())
+ } else {
+ Some(dirs::data_dir()?.join("AstralRinthApp"))
+ }
+ })
}
/// Get all paths needed for Theseus to operate properly