From 65816a270ffc8dac404fa03e11f15bb047480bd7 Mon Sep 17 00:00:00 2001 From: Louis Pontoise Date: Thu, 26 Mar 2020 18:32:46 +0900 Subject: [PATCH] fix: avoid having multiple login items --- src/ui/preferences-window/tabs/GeneralTab.swift | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/ui/preferences-window/tabs/GeneralTab.swift b/src/ui/preferences-window/tabs/GeneralTab.swift index 50dc4240..9673e548 100644 --- a/src/ui/preferences-window/tabs/GeneralTab.swift +++ b/src/ui/preferences-window/tabs/GeneralTab.swift @@ -43,17 +43,16 @@ class GeneralTab { // adding/removing login item depending on the checkbox state @available(OSX, deprecated: 10.11) - @objc static func startAtLoginCallback(_ sender: NSControl) { + @objc private static func startAtLoginCallback(_ sender: NSControl) { let loginItems = LSSharedFileListCreate(nil, kLSSharedFileListSessionLoginItems.takeRetainedValue(), nil).takeRetainedValue() let loginItemsSnapshot = LSSharedFileListCopySnapshot(loginItems, nil).takeRetainedValue() as! [LSSharedFileListItem] + loginItemsSnapshot.forEach { + if LSSharedFileListItemCopyResolvedURL($0, 0, nil).takeRetainedValue() == App.url { + LSSharedFileListItemRemove(loginItems, $0) + } + } if (sender as! NSButton).state == .on { LSSharedFileListInsertItemURL(loginItems, kLSSharedFileListItemBeforeFirst.takeRetainedValue(), nil, nil, App.url, nil, nil) - } else { - loginItemsSnapshot.forEach { - if LSSharedFileListItemCopyResolvedURL($0, 0, nil).takeRetainedValue() == App.url { - LSSharedFileListItemRemove(loginItems, $0) - } - } } } }