summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp15
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h2
-rw-r--r--src/webenginewidgets/api/qwebenginepage_p.h3
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp1
-rw-r--r--src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.cpp11
-rw-r--r--src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.h2
6 files changed, 24 insertions, 10 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());
}
}
diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.cpp
index 2da55f66e..d6e99f4ea 100644
--- a/src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.cpp
+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.cpp
@@ -54,21 +54,22 @@
RenderWidgetHostViewQtDelegateWebPage::RenderWidgetHostViewQtDelegateWebPage(RenderWidgetHostViewQtDelegateClient *client)
: m_client(client)
, m_page(0)
+ , m_pagePrivate(0)
{
}
void RenderWidgetHostViewQtDelegateWebPage::initAsChild(WebContentsAdapterClient* container)
{
- QWebEnginePagePrivate *pagePrivate = static_cast<QWebEnginePagePrivate *>(container);
- pagePrivate->m_rwhvDelegate = this;
- m_page = pagePrivate->q_func();
+ m_pagePrivate = static_cast<QWebEnginePagePrivate *>(container);
+ m_pagePrivate->m_rwhvDelegate = this;
+ m_page = m_pagePrivate->q_func();
Q_ASSERT(m_page);
}
QRectF RenderWidgetHostViewQtDelegateWebPage::screenRect() const
{
- if (m_page && m_page->view())
- return m_page->view()->rect();
+ if (m_pagePrivate)
+ return m_pagePrivate->viewportRect();
// FIXME: figure out what to do with QWebFrame::contentsSize vs. preferedContentsSize
return QRectF(0, 0, 800, 600);
}
diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.h b/src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.h
index 5674e61c1..52988aefa 100644
--- a/src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.h
+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_webpage.h
@@ -52,6 +52,7 @@ class BackingStoreQt;
QT_BEGIN_NAMESPACE
class QWindow;
class QWebEnginePage;
+class QWebEnginePagePrivate;
QT_END_NAMESPACE
class RenderWidgetHostViewQtDelegateWebPage : public QObject, public RenderWidgetHostViewQtDelegate
@@ -86,6 +87,7 @@ protected:
private:
RenderWidgetHostViewQtDelegateClient *m_client;
QWebEnginePage *m_page;
+ QWebEnginePagePrivate *m_pagePrivate;
};
#endif