]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
macOS: Ensure a tunnel is selected when '-' is clicked
authorRoopesh Chander <roop@roopc.net>
Tue, 8 Jan 2019 21:11:42 +0000 (02:41 +0530)
committerRoopesh Chander <roop@roopc.net>
Mon, 14 Jan 2019 09:22:35 +0000 (14:52 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift

index 709ec8ec41b0ee91751778fe867024038c0e0656..e6b72ca3b92bdb274f346b36a9ad2d39a9db3acf 100644 (file)
@@ -138,6 +138,7 @@ class TunnelsListTableViewController: NSViewController {
     @objc func removeTunnelClicked() {
         guard let window = view.window else { return }
         let selectedTunnelIndex = tableView.selectedRow
+        guard selectedTunnelIndex >= 0 && selectedTunnelIndex < tunnelsManager.numberOfTunnels() else { return }
         let selectedTunnel = tunnelsManager.tunnel(at: selectedTunnelIndex)
         let alert = NSAlert()
         alert.messageText = tr(format: "macDeleteTunnelConfirmationAlertMessage (%@)", selectedTunnel.name)
@@ -149,13 +150,13 @@ class TunnelsListTableViewController: NSViewController {
             self?.buttonBar.setEnabled(false, forSegment: 1)
             self?.tunnelsManager.remove(tunnel: selectedTunnel) { [weak self] error in
                 guard let self = self else { return }
-                self.buttonBar.setEnabled(true, forSegment: 1)
+                defer { self.buttonBar.setEnabled(true, forSegment: 1) }
                 if let error = error {
                     ErrorPresenter.showErrorAlert(error: error, from: self)
                     return
                 }
                 let tunnelIndex = min(selectedTunnelIndex, self.tunnelsManager.numberOfTunnels() - 1)
-                if tunnelIndex > 0 {
+                if tunnelIndex >= 0 {
                     self.selectTunnel(at: tunnelIndex)
                 }
             }