diff --git a/lib/matplotlib/backends/qt_compat.py b/lib/matplotlib/backends/qt_compat.py index 7b42862fc384..21b89125d88e 100644 --- a/lib/matplotlib/backends/qt_compat.py +++ b/lib/matplotlib/backends/qt_compat.py @@ -15,6 +15,7 @@ from distutils.version import LooseVersion import os +import platform import sys import matplotlib as mpl @@ -180,6 +181,15 @@ def is_pyqt5(): raise AssertionError("Unexpected QT_API: {}".format(QT_API)) +# Fixes issues with Big Sur +# https://bugreports.qt.io/browse/QTBUG-87014, fixed in qt 5.15.2 +if (sys.platform == 'darwin' and + LooseVersion(platform.mac_ver()[0]) >= LooseVersion("10.16") and + LooseVersion(QtCore.qVersion()) < LooseVersion("5.15.2") and + "QT_MAC_WANTS_LAYER" not in os.environ): + os.environ["QT_MAC_WANTS_LAYER"] = "1" + + # These globals are only defined for backcompatibility purposes. ETS = dict(pyqt=(QT_API_PYQTv2, 4), pyside=(QT_API_PYSIDE, 4), pyqt5=(QT_API_PYQT5, 5), pyside2=(QT_API_PYSIDE2, 5))