From 051be927cdeef4311b1b347915a4706f87abed42 Mon Sep 17 00:00:00 2001
From: GyDi <zzzgydi@gmail.com>
Date: Fri, 23 Dec 2022 22:39:27 +0800
Subject: [PATCH] fix: avoid setting login item repeatedly, close #326

---
 src-tauri/src/core/sysopt.rs | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src-tauri/src/core/sysopt.rs b/src-tauri/src/core/sysopt.rs
index 5eed1e5..ea7f401 100644
--- a/src-tauri/src/core/sysopt.rs
+++ b/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(())
-- 
GitLab