From eabeb8ff05efe604d8a031d2f778f490430e9a76 Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Thu, 24 Jan 2019 18:35:07 +0530 Subject: macOS: Select the active tunnel when showing the manage tunnels window Signed-off-by: Roopesh Chander --- .../ViewController/TunnelsListTableViewController.swift | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'WireGuard/WireGuard/UI/macOS/ViewController') diff --git a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift index 5ae89c4..46f6bcb 100644 --- a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift +++ b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelsListTableViewController.swift @@ -61,7 +61,8 @@ class TunnelsListTableViewController: NSViewController { override func loadView() { tableView.dataSource = self tableView.delegate = self - let isSelected = selectTunnel(at: 0) + + let isSelected = selectTunnelInOperation() || selectTunnel(at: 0) if !isSelected { delegate?.tunnelsListEmpty() } @@ -110,6 +111,18 @@ class TunnelsListTableViewController: NSViewController { view = containerView } + override func viewWillAppear() { + selectTunnelInOperation() + } + + @discardableResult + func selectTunnelInOperation() -> Bool { + if let currentTunnel = tunnelsManager.tunnelInOperation(), let indexToSelect = tunnelsManager.index(of: currentTunnel) { + return selectTunnel(at: indexToSelect) + } + return false + } + @objc func buttonBarClicked(sender: AnyObject?) { guard let buttonBar = sender as? NSSegmentedControl else { return } // We have to resort to explicitly showing the menu instead of using NSSegmentedControl.setMenu() -- cgit v1.2.3-59-g8ed1b