summaryrefslogtreecommitdiffstats
path: root/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2016-09-22 17:57:28 +0200
committerPeter Varga <pvarga@inf.u-szeged.hu>2016-09-27 13:41:08 +0000
commitafd529cfcb3b42a6afcd5fdf4a01e9c9861884f0 (patch)
treed4e919ea9f253a718be2d8b62edb4e72c1faa14e /src/webengine/render_widget_host_view_qt_delegate_quick.cpp
parent4b515da7dca16d5cd34054c6f3436ff8b97d562c (diff)
Propagate the view's screen coordinates on global position change in Quick
Based on widget solution: 1e83a2d1b61b13323163dfe8cac64dad397cb202 Task-number: QTBUG-55650 Change-Id: I6df45e7e018fa201c50fe81e8679c36f97ddeb1e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webengine/render_widget_host_view_qt_delegate_quick.cpp')
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quick.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
index 290f3f9b0..d5365759d 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
+++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
@@ -312,6 +312,16 @@ void RenderWidgetHostViewQtDelegateQuick::inputMethodEvent(QInputMethodEvent *ev
void RenderWidgetHostViewQtDelegateQuick::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
{
QQuickItem::geometryChanged(newGeometry, oldGeometry);
+
+ if (window()) {
+ // TODO(pvarga): Use QQuickItem::mapToGlobal from Qt 5.7
+ const QPoint globalPos = window()->mapToGlobal(position().toPoint());
+ if (globalPos != m_lastGlobalPos) {
+ m_lastGlobalPos = globalPos;
+ m_client->windowBoundsChanged();
+ }
+ }
+
m_client->notifyResize();
}
@@ -344,6 +354,10 @@ QSGNode *RenderWidgetHostViewQtDelegateQuick::updatePaintNode(QSGNode *oldNode,
void RenderWidgetHostViewQtDelegateQuick::onWindowPosChanged()
{
+ if (window()) {
+ // TODO(pvarga): Use QQuickItem::mapToGlobal from Qt 5.7
+ m_lastGlobalPos = window()->mapToGlobal(position().toPoint());
+ }
m_client->windowBoundsChanged();
}