diff options
Diffstat (limited to 'src/webenginewidgets/api')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 15 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage_p.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 1 |
4 files changed, 16 insertions, 5 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 3436d86cf..83f77b4bd 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -216,7 +216,10 @@ void QWebEnginePagePrivate::selectionChanged() QRectF QWebEnginePagePrivate::viewportRect() const { - return view ? view->geometry() : QRectF(); + QRectF rect(QPointF(), viewportSize); + if (view) + rect.setTopLeft(view->rect().topLeft()); + return rect; } qreal QWebEnginePagePrivate::dpiScale() const @@ -500,10 +503,16 @@ void QWebEnginePage::findText(const QString &subString, FindFlags options, const } } -void QWebEnginePage::setViewportSize(const QSize &size) const +QSize QWebEnginePage::viewportSize() const { - Q_UNUSED(size) Q_D(const QWebEnginePage); + return d->viewportSize; +} + +void QWebEnginePage::setViewportSize(const QSize &size) +{ + Q_D(QWebEnginePage); + d->viewportSize = size; if (d->m_rwhvDelegate) d->m_rwhvDelegate->notifyResize(); } diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index aac37bc99..96ffeda3a 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -355,7 +355,7 @@ public: virtual void triggerAction(WebAction action, bool checked = false); QSize viewportSize() const; - void setViewportSize(const QSize &size) const; + void setViewportSize(const QSize &size); ViewportAttributes viewportAttributesForSize(const QSize& availableSize) const; QSize preferredContentsSize() const; diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index ed21c3816..773df00d4 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -142,13 +142,14 @@ public: QExplicitlySharedDataPointer<WebContentsAdapter> adapter; QWebEngineHistory *history; QWebEngineView *view; - mutable QAction *actions[QWebEnginePage::WebActionCount]; + QSize viewportSize; bool m_isLoading; QUrl m_explicitUrl; WebEngineContextMenuData m_menuData; QPointer<RenderWidgetHostViewQtDelegateWebPage> m_rwhvDelegate; mutable CallbackDirectory m_callbacks; + mutable QAction *actions[QWebEnginePage::WebActionCount]; }; QT_END_NAMESPACE diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 3d884f464..a29349052 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -81,6 +81,7 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page) QObject::connect(page, &QWebEnginePage::loadProgress, view, &QWebEngineView::loadProgress); QObject::connect(page, &QWebEnginePage::loadFinished, view, &QWebEngineView::loadFinished); QObject::connect(page, &QWebEnginePage::selectionChanged, view, &QWebEngineView::selectionChanged); + page->setViewportSize(view->size()); } } |