Skip to content

Commit fa0744e

Browse files
authored
Merge pull request Ranchero-Software#3100 from greenbuffo/fix/2916
Expand workaround for macOS 11 WebView origin offset bug. Fixes Ranchero-Software#2916
2 parents 8e34187 + 364f3a7 commit fa0744e

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

Mac/MainWindow/Detail/DetailWebView.swift

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,19 @@ final class DetailWebView: WKWebView {
5353
override func viewDidEndLiveResize() {
5454
super.viewDidEndLiveResize()
5555
evaluateJavaScript("document.body.style.overflow = 'visible';", completionHandler: nil)
56+
bigSurOffsetFix()
57+
}
58+
59+
override func setFrameSize(_ newSize: NSSize) {
60+
super.setFrameSize(newSize)
61+
if (!inLiveResize) {
62+
bigSurOffsetFix()
63+
}
64+
}
5665

66+
private var inBigSurOffsetFix = false
67+
68+
private func bigSurOffsetFix() {
5769
/*
5870
On macOS 11, when a user exits full screen
5971
or exits zoomed mode by disconnecting an external display
@@ -66,6 +78,17 @@ final class DetailWebView: WKWebView {
6678
guard var frame = window?.frame else {
6779
return
6880
}
81+
82+
guard !inBigSurOffsetFix else {
83+
return
84+
}
85+
86+
inBigSurOffsetFix = true
87+
88+
defer {
89+
inBigSurOffsetFix = false
90+
}
91+
6992
frame.size = NSSize(width: window!.frame.width, height: window!.frame.height - 1)
7093
window!.setFrame(frame, display: false)
7194
frame.size = NSSize(width: window!.frame.width, height: window!.frame.height + 1)

0 commit comments

Comments
 (0)