aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2019-05-15 16:16:00 +0530
committerRoopesh Chander <roop@roopc.net>2019-05-20 16:42:27 +0530
commit9bf304a9acd6a7ddd7459df9fbd84b4a804a6069 (patch)
tree9da4fbdc4395fbe034b6f997d78a0bc932f6e449 /WireGuard
parentmacOS: Disable 'Delete Selected' when nothing is selected (diff)
downloadwireguard-apple-9bf304a9acd6a7ddd7459df9fbd84b4a804a6069.tar.xz
wireguard-apple-9bf304a9acd6a7ddd7459df9fbd84b4a804a6069.zip
macOS: Minor refactor of StatusMenuWindowDelegate
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to 'WireGuard')
-rw-r--r--WireGuard/WireGuard/UI/macOS/AppDelegate.swift13
-rw-r--r--WireGuard/WireGuard/UI/macOS/StatusMenu.swift18
2 files changed, 18 insertions, 13 deletions
diff --git a/WireGuard/WireGuard/UI/macOS/AppDelegate.swift b/WireGuard/WireGuard/UI/macOS/AppDelegate.swift
index 8dc5825..d3e2c0a 100644
--- a/WireGuard/WireGuard/UI/macOS/AppDelegate.swift
+++ b/WireGuard/WireGuard/UI/macOS/AppDelegate.swift
@@ -124,9 +124,13 @@ extension AppDelegate {
}
extension AppDelegate: StatusMenuWindowDelegate {
- func manageTunnelsWindow() -> NSWindow {
+ func showManageTunnelsWindow(completion: ((NSWindow?) -> Void)?) {
+ guard let tunnelsManager = tunnelsManager else {
+ completion?(nil)
+ return
+ }
if manageTunnelsWindowObject == nil {
- manageTunnelsRootVC = ManageTunnelsRootViewController(tunnelsManager: tunnelsManager!)
+ manageTunnelsRootVC = ManageTunnelsRootViewController(tunnelsManager: tunnelsManager)
let window = NSWindow(contentViewController: manageTunnelsRootVC!)
window.title = tr("macWindowTitleManageTunnels")
window.setContentSize(NSSize(width: 800, height: 480))
@@ -134,7 +138,10 @@ extension AppDelegate: StatusMenuWindowDelegate {
manageTunnelsWindowObject = window
tunnelsTracker?.manageTunnelsRootVC = manageTunnelsRootVC
}
- return manageTunnelsWindowObject!
+ NSApp.setActivationPolicy(.regular)
+ NSApp.activate(ignoringOtherApps: true)
+ manageTunnelsWindowObject!.makeKeyAndOrderFront(self)
+ completion?(manageTunnelsWindowObject)
}
}
diff --git a/WireGuard/WireGuard/UI/macOS/StatusMenu.swift b/WireGuard/WireGuard/UI/macOS/StatusMenu.swift
index 4044d4e..f4f999d 100644
--- a/WireGuard/WireGuard/UI/macOS/StatusMenu.swift
+++ b/WireGuard/WireGuard/UI/macOS/StatusMenu.swift
@@ -4,7 +4,7 @@
import Cocoa
protocol StatusMenuWindowDelegate: class {
- func manageTunnelsWindow() -> NSWindow
+ func showManageTunnelsWindow(completion: ((NSWindow?) -> Void)?)
}
class StatusMenu: NSMenu {
@@ -151,18 +151,16 @@ class StatusMenu: NSMenu {
}
@objc func manageTunnelsClicked() {
- NSApp.setActivationPolicy(.regular)
- NSApp.activate(ignoringOtherApps: true)
- guard let manageTunnelsWindow = windowDelegate?.manageTunnelsWindow() else { return }
- manageTunnelsWindow.makeKeyAndOrderFront(self)
+ windowDelegate?.showManageTunnelsWindow(completion: nil)
}
@objc func importTunnelsClicked() {
- NSApp.setActivationPolicy(.regular)
- NSApp.activate(ignoringOtherApps: true)
- guard let manageTunnelsWindow = windowDelegate?.manageTunnelsWindow() else { return }
- manageTunnelsWindow.makeKeyAndOrderFront(self)
- ImportPanelPresenter.presentImportPanel(tunnelsManager: tunnelsManager, sourceVC: manageTunnelsWindow.contentViewController)
+ windowDelegate?.showManageTunnelsWindow { [weak self] manageTunnelsWindow in
+ guard let self = self else { return }
+ guard let manageTunnelsWindow = manageTunnelsWindow else { return }
+ ImportPanelPresenter.presentImportPanel(tunnelsManager: self.tunnelsManager,
+ sourceVC: manageTunnelsWindow.contentViewController)
+ }
}
}