summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api/qwebenginepage.cpp
diff options
context:
space:
mode:
authorJüri Valdmann <juri.valdmann@qt.io>2019-04-12 11:33:16 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-04-17 17:05:18 +0000
commit96fb3a30457c8925431b67c0f35abb2833b7fb7c (patch)
tree0fa0f65a13b567136d1f5322d8f959209b881b76 /src/webenginewidgets/api/qwebenginepage.cpp
parent9773111d686a96d694685fcb155a1965b0b6107f (diff)
Fix QWebEngineView::setPage not deleting old page
Also fix QWebEnginePage::setView not deleting old page Also fix wrong page being deleted if it's parented to the view. Fixes: QTBUG-75131 Fixes: QTBUG-75175 Change-Id: Ie4dfb15b3182de7aa3a94cddcac54ea40a86121b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webenginewidgets/api/qwebenginepage.cpp')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index dd720a41b..85a162383 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -775,6 +775,13 @@ void QWebEnginePagePrivate::bindPageAndView(QWebEnginePage *page, QWebEngineView
view->d_func()->pageChanged(oldPage, page);
if (oldWidget != widget)
view->d_func()->widgetChanged(oldWidget, widget);
+
+ // At this point m_ownsPage should still refer to oldPage,
+ // it is only set for the new page after binding.
+ if (view->d_func()->m_ownsPage) {
+ delete oldPage;
+ view->d_func()->m_ownsPage = false;
+ }
}
}