Procházet zdrojové kódy

fix: avoid setting login item repeatedly, close #326

GyDi před 2 roky
rodič
revize
051be927cd
1 změnil soubory, kde provedl 11 přidání a 2 odebrání
  1. 11 2
      src-tauri/src/core/sysopt.rs

+ 11 - 2
src-tauri/src/core/sysopt.rs

@@ -182,13 +182,22 @@ impl Sysopt {
             return Ok(());
         }
 
-        // macos每次启动都更新登录项,避免重复设置登录项
         #[cfg(target_os = "macos")]
-        let _ = auto.disable();
+        {
+            if enable && !auto.is_enabled().unwrap_or(false) {
+                // 避免重复设置登录项
+                let _ = auto.disable();
+                auto.enable()?;
+            } else if !enable {
+                let _ = auto.disable();
+            }
+        }
 
+        #[cfg(not(target_os = "macos"))]
         if enable {
             auto.enable()?;
         }
+
         *self.auto_launch.lock() = Some(auto);
 
         Ok(())