diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-09-22 02:40:49 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-09-22 02:40:49 +0200 |
commit | 3428bfbc9e6686e1293c96d15ce91bc47512828a (patch) | |
tree | 61619ebb5a6ef12093e3adb98f065cb3e4ffcf1f | |
parent | UI: Consider on-demand to be enabled iff the tunnel provider is enabled (diff) | |
download | wireguard-apple-3428bfbc9e6686e1293c96d15ce91bc47512828a.tar.xz wireguard-apple-3428bfbc9e6686e1293c96d15ce91bc47512828a.zip |
UI: macOS: do on-demand ritual for clicking list item too
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r-- | Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift | 6 | ||||
-rw-r--r-- | Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift | 17 |
2 files changed, 16 insertions, 7 deletions
diff --git a/Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift b/Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift index 03cecf7..6ad8cf3 100644 --- a/Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift +++ b/Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift @@ -216,9 +216,9 @@ class TunnelDetailTableViewController: NSViewController { } @objc func handleToggleActiveStatusAction() { - if self.tunnel.hasOnDemandRules { - let turnOn = !self.tunnel.isActivateOnDemandEnabled - self.tunnelsManager.setOnDemandEnabled(turnOn, on: self.tunnel) { error in + if tunnel.hasOnDemandRules { + let turnOn = !tunnel.isActivateOnDemandEnabled + tunnelsManager.setOnDemandEnabled(turnOn, on: tunnel) { error in if error == nil && !turnOn { self.tunnelsManager.startDeactivation(of: self.tunnel) } diff --git a/Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift b/Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift index 265d3c3..e1fd1e8 100644 --- a/Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift +++ b/Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift @@ -232,10 +232,19 @@ class TunnelsListTableViewController: NSViewController { let tunnelIndex = tableView.clickedRow guard tunnelIndex >= 0 && tunnelIndex < tunnelsManager.numberOfTunnels() else { return } let tunnel = tunnelsManager.tunnel(at: tunnelIndex) - if tunnel.status == .inactive { - tunnelsManager.startActivation(of: tunnel) - } else if tunnel.status == .active { - tunnelsManager.startDeactivation(of: tunnel) + if tunnel.hasOnDemandRules { + let turnOn = !tunnel.isActivateOnDemandEnabled + tunnelsManager.setOnDemandEnabled(turnOn, on: tunnel) { error in + if error == nil && !turnOn { + self.tunnelsManager.startDeactivation(of: tunnel) + } + } + } else { + if tunnel.status == .inactive { + tunnelsManager.startActivation(of: tunnel) + } else if tunnel.status == .active { + tunnelsManager.startDeactivation(of: tunnel) + } } } |