* Tue Apr 25 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.8.0-10 - Backport upstream fix for blank pages when a link opens in a new tabepel9
parent
b72c3e9db8
commit
9c17aa1fd8
@ -0,0 +1,46 @@
|
||||
From 8e147ed3be7740092de233a2a7c67ec890069649 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@qt.io>
|
||||
Date: Mon, 13 Mar 2017 11:13:56 +0100
|
||||
Subject: Remove stale parent connection when initializing delegate as a child
|
||||
|
||||
When clicking on a blank link target, the constructor of the
|
||||
RenderWidgetHostViewQtDelegateWidget instance for the newly created
|
||||
view is called with the originating QWebEngineView as its parent
|
||||
and will connect its removeParentBeforeParentDelete slot to the
|
||||
originating view's destroyed signal.
|
||||
|
||||
This leads to the situation where the delegate's parent will be set to
|
||||
null when the originating view is closed, causing the view to display
|
||||
only an empty widget with the actual web contents remaining live in
|
||||
the background.
|
||||
|
||||
This patch removes the connection to the old view when initializing
|
||||
the delegate as a child of the QWebEnginePagePrivate instance. The
|
||||
addition to the layout updates the parent and child relationship
|
||||
between the view and the delegate internally.
|
||||
|
||||
Task-number: QTBUG-58381
|
||||
Change-Id: I448380478c2bcfcfbddaee8a35caf46010e57972
|
||||
Reviewed-by: Florian Bruhin <qt-project.org@the-compiler.org>
|
||||
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
||||
---
|
||||
src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
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 e7ad5b1..14c4d72 100644
|
||||
--- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
|
||||
+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
|
||||
@@ -163,6 +163,9 @@ void RenderWidgetHostViewQtDelegateWidget::initAsChild(WebContentsAdapterClient*
|
||||
|
||||
QWebEnginePagePrivate *pagePrivate = static_cast<QWebEnginePagePrivate *>(container);
|
||||
if (pagePrivate->view) {
|
||||
+ if (parentWidget())
|
||||
+ disconnect(parentWidget(), &QObject::destroyed,
|
||||
+ this, &RenderWidgetHostViewQtDelegateWidget::removeParentBeforeParentDelete);
|
||||
pagePrivate->view->layout()->addWidget(this);
|
||||
pagePrivate->view->setFocusProxy(this);
|
||||
show();
|
||||
--
|
||||
cgit v1.0-4-g1e03
|
||||
|
Loading…
Reference in new issue