diff options
author | Roopesh Chander <roop@roopc.net> | 2019-01-03 19:43:52 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2019-01-14 14:52:32 +0530 |
commit | 8d9c5e2950bf2afed2cd981127ce91787b69ccf5 (patch) | |
tree | 45d7016b1c0b0921f952d38124c38613dc5a00eb /WireGuard/WireGuard/UI/macOS/StatusMenu.swift | |
parent | macOS: Manage tunnels: Adjust spacings (diff) | |
download | wireguard-apple-8d9c5e2950bf2afed2cd981127ce91787b69ccf5.tar.xz wireguard-apple-8d9c5e2950bf2afed2cd981127ce91787b69ccf5.zip |
macOS: Show open panel as sheet on manage window
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to 'WireGuard/WireGuard/UI/macOS/StatusMenu.swift')
-rw-r--r-- | WireGuard/WireGuard/UI/macOS/StatusMenu.swift | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/WireGuard/WireGuard/UI/macOS/StatusMenu.swift b/WireGuard/WireGuard/UI/macOS/StatusMenu.swift index b18f7b1..cbeed35 100644 --- a/WireGuard/WireGuard/UI/macOS/StatusMenu.swift +++ b/WireGuard/WireGuard/UI/macOS/StatusMenu.swift @@ -13,6 +13,13 @@ class StatusMenu: NSMenu { var firstTunnelMenuItemIndex: Int = 0 var numberOfTunnelMenuItems: Int = 0 + lazy var manageTunnelsWindow: NSWindow = { + let manageTunnelsRootVC = ManageTunnelsRootViewController(tunnelsManager: tunnelsManager) + let window = NSWindow(contentViewController: manageTunnelsRootVC) + window.setFrameAutosaveName(NSWindow.FrameAutosaveName("ManageTunnelsWindow")) // Auto-save window position and size + return window + }() + init(tunnelsManager: TunnelsManager) { self.tunnelsManager = tunnelsManager super.init(title: "WireGuard Status Bar Menu") @@ -116,17 +123,16 @@ class StatusMenu: NSMenu { } @objc func manageTunnelsClicked() { - let manageTunnelsRootVC = ManageTunnelsRootViewController(tunnelsManager: tunnelsManager) - let window = NSWindow(contentViewController: manageTunnelsRootVC) - window.setFrameAutosaveName(NSWindow.FrameAutosaveName("ManageTunnelsWindow")) // Auto-save window position and size NSApp.activate(ignoringOtherApps: true) - window.makeKeyAndOrderFront(self) + manageTunnelsWindow.makeKeyAndOrderFront(self) } @objc func importTunnelsClicked() { + NSApp.activate(ignoringOtherApps: true) + manageTunnelsWindow.makeKeyAndOrderFront(self) let openPanel = NSOpenPanel() openPanel.allowedFileTypes = ["conf", "zip"] - openPanel.begin { [weak tunnelsManager] response in + openPanel.beginSheetModal(for: manageTunnelsWindow) { [weak tunnelsManager] response in guard let tunnelsManager = tunnelsManager else { return } guard response == .OK else { return } guard let url = openPanel.url else { return } |