aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/macOS/StatusMenu.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2019-01-03 19:43:52 +0530
committerRoopesh Chander <roop@roopc.net>2019-01-14 14:52:32 +0530
commit8d9c5e2950bf2afed2cd981127ce91787b69ccf5 (patch)
tree45d7016b1c0b0921f952d38124c38613dc5a00eb /WireGuard/WireGuard/UI/macOS/StatusMenu.swift
parentmacOS: Manage tunnels: Adjust spacings (diff)
downloadwireguard-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.swift16
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 }