aboutsummaryrefslogtreecommitdiff
path: root/depends/patches/qt/fix_bigsur_drawing.patch
blob: 98c0c6be30142fc4e592cab441ce8f14796cc657 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Fix GUI stuck on Big Sur

See:
 - https://github.com/bitcoin-core/gui/issues/249
 - https://github.com/bitcoin/bitcoin/pull/21495
 - https://bugreports.qt.io/browse/QTBUG-87014

We should be able to drop this once we are using one of the following versions:
 - Qt 5.12.11 or later, see upstream commit: c5d904639dbd690a36306e2b455610029704d821
 - Qt 5.15.3 or later, see upstream commit: 2cae34354bd41ae286258c7a6b3653b746e786ae

--- a/qtbase/src/plugins/platforms/cocoa/qnsview_drawing.mm
+++ b/qtbase/src/plugins/platforms/cocoa/qnsview_drawing.mm
@@ -95,8 +95,15 @@
     // by AppKit at a point where we've already set up other parts of the platform plugin
     // based on the presence of layers or not. Once we've rewritten these parts to support
     // dynamically picking up layer enablement we can let AppKit do its thing.
-    return QMacVersion::buildSDK() >= QOperatingSystemVersion::MacOSMojave
-        && QMacVersion::currentRuntime() >= QOperatingSystemVersion::MacOSMojave;
+
+    if (QMacVersion::currentRuntime() >= QOperatingSystemVersion::MacOSBigSur)
+        return true; // Big Sur always enables layer-backing, regardless of SDK
+
+    if (QMacVersion::currentRuntime() >= QOperatingSystemVersion::MacOSMojave
+        && QMacVersion::buildSDK() >= QOperatingSystemVersion::MacOSMojave)
+        return true; // Mojave and Catalina enable layers based on the app's SDK
+
+    return false; // Prior versions needed explicitly enabled layer backing
 }
 
 - (BOOL)layerExplicitlyRequested