summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
index 55b6001d1..4de425c5b 100644
--- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
@@ -136,9 +136,25 @@ RenderWidgetHostViewQtDelegateWidget::RenderWidgetHostViewQtDelegateWidget(Rende
// Make sure the OpenGL profile of the QQuickWidget matches the shared context profile.
if (sharedFormat.profile() == QSurfaceFormat::CoreProfile) {
- format.setMajorVersion(sharedFormat.majorVersion());
- format.setMinorVersion(sharedFormat.minorVersion());
- format.setProfile(sharedFormat.profile());
+ int major;
+ int minor;
+ QSurfaceFormat::OpenGLContextProfile profile;
+
+#ifdef Q_OS_MACOS
+ // Due to QTBUG-63180, requesting the sharedFormat.majorVersion() on macOS will lead to
+ // a failed creation of QQuickWidget shared context. Thus make sure to request the
+ // major version specified in the defaultFormat instead.
+ major = defaultFormat.majorVersion();
+ minor = defaultFormat.minorVersion();
+ profile = defaultFormat.profile();
+#else
+ major = sharedFormat.majorVersion();
+ minor = sharedFormat.minorVersion();
+ profile = sharedFormat.profile();
+#endif
+ format.setMajorVersion(major);
+ format.setMinorVersion(minor);
+ format.setProfile(profile);
}
}