path: root/src/webenginewidgets/api/qwebenginepage.cpp
diff options
authorAllan Sandfeld Jensen <>2016-11-24 10:34:04 +0100
committerAllan Sandfeld Jensen <>2016-11-24 10:34:04 +0100
commitda4d5bd985454fe2dc5fbe44c92b81a94b525088 (patch)
tree34819bb7b5c9a3f721c567f3f664bfe4d6048f2e /src/webenginewidgets/api/qwebenginepage.cpp
parentb44962c8bce5489deee289212282cdf2c89b425a (diff)
parent95a22234a4671e6e79ce1cecbd720551a185d278 (diff)
Merge branch '5.6' into 5.7
Conflicts: src/core/api/qwebengineurlrequestinfo.cpp src/core/api/qwebengineurlrequestinfo.h src/core/ Change-Id: I5c78f0c86f6dcd61697148f0729d3d3a2cb2c76f
Diffstat (limited to 'src/webenginewidgets/api/qwebenginepage.cpp')
1 files changed, 10 insertions, 1 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index df4031712..e84c91bd7 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -152,7 +152,16 @@ QWebEnginePagePrivate::~QWebEnginePagePrivate()
RenderWidgetHostViewQtDelegate *QWebEnginePagePrivate::CreateRenderWidgetHostViewQtDelegate(RenderWidgetHostViewQtDelegateClient *client)
- return new RenderWidgetHostViewQtDelegateWidget(client);
+ // Set the QWebEngineView as the parent for a popup delegate, so that the new popup window
+ // responds properly to clicks in case the QWebEngineView is inside a modal QDialog. Setting the
+ // parent essentially notifies the OS that the popup window is part of the modal session, and
+ // should allow interaction.
+ // The new delegate will not be deleted by the parent view though, because we unset the parent
+ // when the parent is destroyed. The delegate will be destroyed by Chromium when the popup is
+ // dismissed.
+ // If the delegate is not for a popup, but for a newly created QWebEngineView, the parent is 0
+ // just like before.
+ return new RenderWidgetHostViewQtDelegateWidget(client, this->view);
void QWebEnginePagePrivate::titleChanged(const QString &title)