diff options
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 7 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage_p.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 0f414f313..6d20088df 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -90,6 +90,7 @@ void QWebEnginePagePrivate::titleChanged(const QString &title) void QWebEnginePagePrivate::urlChanged(const QUrl &url) { Q_Q(QWebEnginePage); + m_explicitUrl = QUrl(); Q_EMIT q->urlChanged(url); } @@ -132,6 +133,8 @@ void QWebEnginePagePrivate::loadFinished(bool success, int error_code, const QSt Q_UNUSED(error_code); Q_UNUSED(error_description); m_isLoading = adapter->isLoading(); + if (success) + m_explicitUrl = QUrl(); Q_EMIT q->loadFinished(success); } @@ -539,13 +542,15 @@ QString QWebEnginePage::title() const void QWebEnginePage::setUrl(const QUrl &url) { + Q_D(QWebEnginePage); + d->m_explicitUrl = url; load(url); } QUrl QWebEnginePage::url() const { Q_D(const QWebEnginePage); - return d->adapter->activeUrl(); + return d->m_explicitUrl.isValid() ? d->m_explicitUrl : d->adapter->activeUrl(); } QUrl QWebEnginePage::requestedUrl() const diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index b905cee6d..e40bc510a 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -100,6 +100,7 @@ public: QWebEngineView *view; mutable QAction *actions[QWebEnginePage::WebActionCount]; bool m_isLoading; + QUrl m_explicitUrl; WebEngineContextMenuData m_menuData; QPointer<RenderWidgetHostViewQtDelegateWebPage> m_rwhvDelegate; |