summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginewidgets')
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp3
-rw-r--r--src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp5
2 files changed, 8 insertions, 0 deletions
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index 3e6efafbd..47afca8ce 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -72,6 +72,9 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page)
if (QWebEnginePage *oldPage = view->d_func()->page) {
oldPage->disconnect(view);
oldPage->d_func()->view = 0;
+ oldPage->d_func()->adapter->reattachRWHV();
+ if (oldPage->parent() == view)
+ delete oldPage;
}
view->d_func()->page = page;
}
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 7c012e54c..6c3f1cb1c 100644
--- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
@@ -192,6 +192,11 @@ void RenderWidgetHostViewQtDelegateWidget::initializeGL()
void RenderWidgetHostViewQtDelegateWidget::paintGL()
{
+#if (QT_VERSION < QT_VERSION_CHECK(5, 3, 1))
+ // A workaround for a missing check in 5.3.0 when updating an unparented delegate.
+ if (!QOpenGLContext::currentContext())
+ return;
+#endif
QSGNode *paintNode = m_client->updatePaintNode(rootNode->firstChild(), sgRenderContext.data());
if (paintNode != rootNode->firstChild()) {
delete rootNode->firstChild();