aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard
diff options
context:
space:
mode:
Diffstat (limited to '')
-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 }