From: Roopesh Chander Date: Sun, 24 Feb 2019 10:35:13 +0000 (+0530) Subject: macOS: Tunnel edit: Disable user interaction when OS VPN prompt is shown X-Git-Tag: 0.0.20190319-1~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3df8734c228e4bcb728928a75e1438ffd7aacd4;p=thirdparty%2Fwireguard-apple.git macOS: Tunnel edit: Disable user interaction when OS VPN prompt is shown Signed-off-by: Roopesh Chander --- 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