diff --git a/ClashX/AppDelegate.swift b/ClashX/AppDelegate.swift index 1e2d88f..e1e8b35 100644 --- a/ClashX/AppDelegate.swift +++ b/ClashX/AppDelegate.swift @@ -133,7 +133,8 @@ class AppDelegate: NSObject, NSApplicationDelegate { Logger.log("ClashX quit need clean proxy setting") shouldWait = true group.enter() - SystemProxyManager.shared.disableProxy { + + SystemProxyManager.shared.disableProxy(forceDisable: ConfigManager.shared.isProxySetByOtherVariable.value) { group.leave() } } diff --git a/ClashX/General/Managers/SystemProxyManager.swift b/ClashX/General/Managers/SystemProxyManager.swift index 2e872ba..f0d4fc6 100644 --- a/ClashX/General/Managers/SystemProxyManager.swift +++ b/ClashX/General/Managers/SystemProxyManager.swift @@ -68,10 +68,10 @@ class SystemProxyManager: NSObject { }) } - func disableProxy(complete: (() -> Void)? = nil) { + func disableProxy(forceDisable: Bool = false, complete: (() -> Void)? = nil) { let port = ConfigManager.shared.currentConfig?.usedHttpPort ?? 0 let socketPort = ConfigManager.shared.currentConfig?.usedSocksPort ?? 0 - SystemProxyManager.shared.disableProxy(port: port, socksPort: socketPort, complete: complete) + SystemProxyManager.shared.disableProxy(port: port, socksPort: socketPort, forceDisable: forceDisable, complete: complete) } func disableProxy(port: Int, socksPort: Int, forceDisable: Bool = false, complete: (() -> Void)? = nil) {