Procházet zdrojové kódy

fix: Save wrong window size

MystiPanda před 1 rokem
rodič
revize
99503c836a
2 změnil soubory, kde provedl 12 přidání a 6 odebrání
  1. 3 0
      src-tauri/src/main.rs
  2. 9 6
      src-tauri/src/utils/resolve.rs

+ 3 - 0
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);
                     }

+ 9 - 6
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::<f64>(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(())