]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
UI: macOS: do on-demand ritual for clicking list item too
authorJason A. Donenfeld <Jason@zx2c4.com>
Wed, 22 Sep 2021 00:40:49 +0000 (02:40 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Wed, 22 Sep 2021 00:40:49 +0000 (02:40 +0200)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift
Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift

index 03cecf7b4b0980215d60456e41d500bd9d85e030..6ad8cf3f551b6c95a2fc7a33cc64b39fc52c1932 100644 (file)
@@ -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)
                 }
index 265d3c343bb9140215481044c4687e8449463520..e1fd1e8bf60ca417b88a17c11189a13ca82f1dd7 100644 (file)
@@ -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)
+            }
         }
     }