From afd529cfcb3b42a6afcd5fdf4a01e9c9861884f0 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Thu, 22 Sep 2016 17:57:28 +0200 Subject: 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 Reviewed-by: Allan Sandfeld Jensen --- .../render_widget_host_view_qt_delegate_quick.cpp | 14 ++++++++++++++ src/webengine/render_widget_host_view_qt_delegate_quick.h | 1 + 2 files changed, 15 insertions(+) (limited to 'src/webengine') 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(); } diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.h b/src/webengine/render_widget_host_view_qt_delegate_quick.h index dc0e481db..b6df51e64 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.h +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.h @@ -100,6 +100,7 @@ private: QList m_windowConnections; bool m_isPopup; bool m_initialized; + QPoint m_lastGlobalPos; }; } // namespace QtWebEngineCore -- cgit v1.2.3 From 90fd7fd2ac9c58b82739cdd21a6be4f60f0227fa Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Tue, 27 Sep 2016 11:43:55 +0200 Subject: Doc: Fix initialize() documentation We do not share context between "processes", but between "threads" Change-Id: I20f558f913c1f19fc469ade6faab45762f42d528 Reviewed-by: Kai Koehne --- src/webengine/api/qtwebengineglobal.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/webengine') diff --git a/src/webengine/api/qtwebengineglobal.cpp b/src/webengine/api/qtwebengineglobal.cpp index c392a3c0b..21c0dc2a7 100644 --- a/src/webengine/api/qtwebengineglobal.cpp +++ b/src/webengine/api/qtwebengineglobal.cpp @@ -59,7 +59,7 @@ namespace QtWebEngine { /*! \fn QtWebEngine::initialize() - Sets up an OpenGL Context that can be shared between processes. This has to be done after + Sets up an OpenGL Context that can be shared between threads. This has to be done after QGuiApplication is created, but before a Qt Quick window is created. This has the same effect as setting the Qt::AA_ShareOpenGLContexts -- cgit v1.2.3