From d3df8734c228e4bcb728928a75e1438ffd7aacd4 Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Sun, 24 Feb 2019 16:05:13 +0530 Subject: macOS: Tunnel edit: Disable user interaction when OS VPN prompt is shown Signed-off-by: Roopesh Chander --- .../UI/macOS/ViewController/TunnelEditViewController.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift') diff --git a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift index b99bffc..6e4a23a 100644 --- a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift +++ b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift @@ -198,6 +198,12 @@ class TunnelEditViewController: NSViewController { self.view = containerView } + func setUserInteractionEnabled(_ enabled: Bool) { + view.window?.ignoresMouseEvents = !enabled + nameRow.valueLabel.isEditable = enabled + textView.isEditable = enabled + } + @objc func handleSaveAction() { let name = nameRow.value guard !name.isEmpty else { @@ -242,9 +248,12 @@ class TunnelEditViewController: NSViewController { } } + setUserInteractionEnabled(false) + if let tunnel = tunnel { // We're modifying an existing tunnel tunnelsManager.modify(tunnel: tunnel, tunnelConfiguration: tunnelConfiguration, activateOnDemandSetting: onDemandSetting) { [weak self] error in + self?.setUserInteractionEnabled(true) if let error = error { ErrorPresenter.showErrorAlert(error: error, from: self) return @@ -256,6 +265,7 @@ class TunnelEditViewController: NSViewController { // We're creating a new tunnel AppStorePrivacyNotice.show(from: self, into: tunnelsManager) { [weak self] in self?.tunnelsManager.add(tunnelConfiguration: tunnelConfiguration, activateOnDemandSetting: onDemandSetting) { [weak self] result in + self?.setUserInteractionEnabled(true) if let error = result.error { ErrorPresenter.showErrorAlert(error: error, from: self) return -- cgit v1.2.3-59-g8ed1b