diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 2bebc9b2..4740bdac 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -131,6 +131,9 @@ fn main() -> std::io::Result<()> { tauri::RunEvent::WindowEvent { label, event, .. } => { if label == "main" { match event { + tauri::WindowEvent::Destroyed => { + let _ = resolve::save_window_size_position(&app_handle, true); + } tauri::WindowEvent::CloseRequested { .. } => { let _ = resolve::save_window_size_position(&app_handle, true); } diff --git a/src-tauri/src/utils/resolve.rs b/src-tauri/src/utils/resolve.rs index 7ebed08a..b8949b21 100644 --- a/src-tauri/src/utils/resolve.rs +++ b/src-tauri/src/utils/resolve.rs @@ -195,6 +195,13 @@ pub fn create_window(app_handle: &AppHandle) { /// save window size and position pub fn save_window_size_position(app_handle: &AppHandle, save_to_file: bool) -> Result<()> { + let verge = Config::verge(); + let mut verge = verge.latest(); + + if save_to_file { + verge.save_file()?; + } + let win = app_handle .get_window("main") .ok_or(anyhow::anyhow!("failed to get window"))?; @@ -205,12 +212,8 @@ pub fn save_window_size_position(app_handle: &AppHandle, save_to_file: bool) -> let pos = win.outer_position()?; let pos = pos.to_logical::(scale); - let verge = Config::verge(); - let mut verge = verge.latest(); - verge.window_size_position = Some(vec![size.width, size.height, pos.x, pos.y]); - - if save_to_file { - verge.save_file()?; + if size.width >= 600.0 && size.height >= 520.0 { + verge.window_size_position = Some(vec![size.width, size.height, pos.x, pos.y]); } Ok(())