]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
macOS: Tunnel edit: Handle deletion outside app
authorRoopesh Chander <roop@roopc.net>
Tue, 22 Jan 2019 14:00:06 +0000 (19:30 +0530)
committerRoopesh Chander <roop@roopc.net>
Tue, 22 Jan 2019 14:00:21 +0000 (19:30 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/UI/macOS/ViewController/TunnelDetailTableViewController.swift

index 70085d76e35718347f3467524195d0b224f8487e..546d1c1f35da99e3f0b07722504ad4845ef4d75d 100644 (file)
@@ -84,6 +84,7 @@ class TunnelDetailTableViewController: NSViewController {
     }
     private var tableViewModelRows = [TableViewModelRow]()
     private var statusObservationToken: AnyObject?
+    private var tunnelEditVC: TunnelEditViewController?
 
     init(tunnelsManager: TunnelsManager, tunnel: TunnelContainer) {
         self.tunnelsManager = tunnelsManager
@@ -201,6 +202,7 @@ class TunnelDetailTableViewController: NSViewController {
         let tunnelEditVC = TunnelEditViewController(tunnelsManager: tunnelsManager, tunnel: tunnel)
         tunnelEditVC.delegate = self
         presentAsSheet(tunnelEditVC)
+        self.tunnelEditVC = tunnelEditVC
     }
 
     @objc func handleToggleActiveStatusAction() {
@@ -219,6 +221,13 @@ class TunnelDetailTableViewController: NSViewController {
             tunnelsManager.startDeactivation(of: tunnel)
         }
     }
+
+    override func viewWillDisappear() {
+        super.viewWillDisappear()
+        if let tunnelEditVC = tunnelEditVC {
+            dismiss(tunnelEditVC)
+        }
+    }
 }
 
 extension TunnelDetailTableViewController: NSTableViewDataSource {
@@ -264,6 +273,6 @@ extension TunnelDetailTableViewController: TunnelEditViewControllerDelegate {
     }
 
     func tunnelEditingCancelled() {
-        // Nothing to do
+        self.tunnelEditVC = nil
     }
 }