Переглянути джерело

fix: avoid setting login item repeatedly, close #326

GyDi 2 роки тому
батько
коміт
051be927cd
1 змінених файлів з 11 додано та 2 видалено
  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(())