From bf77d77669396f17003dc2eeed32ec8ea9d07133 Mon Sep 17 00:00:00 2001 From: Chris Campbell Date: Thu, 29 Apr 2021 23:55:23 -0400 Subject: [PATCH] Expand workaround for macOS 11 WebView origin offset bug. Fixes #2916 Move the code that twiddles the window frame from DetailWebView.viewDidEndLiveResize() into a new bigSurOffsetFix() API so it can also be called by setFrameSize() when the frame size is changed outside of a live resize. --- Mac/MainWindow/Detail/DetailWebView.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Mac/MainWindow/Detail/DetailWebView.swift b/Mac/MainWindow/Detail/DetailWebView.swift index 7252adde2..146708f2c 100644 --- a/Mac/MainWindow/Detail/DetailWebView.swift +++ b/Mac/MainWindow/Detail/DetailWebView.swift @@ -53,7 +53,17 @@ final class DetailWebView: WKWebView { override func viewDidEndLiveResize() { super.viewDidEndLiveResize() evaluateJavaScript("document.body.style.overflow = 'visible';", completionHandler: nil) + bigSurOffsetFix() + } + + override func setFrameSize(_ newSize: NSSize) { + super.setFrameSize(newSize) + if (!self.inLiveResize) { + bigSurOffsetFix() + } + } + private func bigSurOffsetFix() { /* On macOS 11, when a user exits full screen or exits zoomed mode by disconnecting an external display