diff options
author | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-08-20 17:21:27 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-08-22 19:37:13 +0200 |
commit | ad1b69c730b522ac2c9c4a04541798dcb9e19343 (patch) | |
tree | 5620ba92ef90a7e116ae12c4bc2954fd8b667d52 | |
parent | c4eafa613e1985dc47646365b27c07f509e14b1c (diff) | |
download | qtquickcontrols-ad1b69c730b522ac2c9c4a04541798dcb9e19343.tar.gz |
Fix tooltip positioning
The previous fix worked only properly when the QQuickWidget was located in
the top-left corner of the window. With bigger offsets the tooltips were off.
Task-number: QTBUG-39878
Change-Id: Ia25194175aa9f9daa9c7132fc776d4b2fa874c26
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
-rw-r--r-- | src/controls/Private/qquicktooltip.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/controls/Private/qquicktooltip.cpp b/src/controls/Private/qquicktooltip.cpp index 30ac58ee..93429ea5 100644 --- a/src/controls/Private/qquicktooltip.cpp +++ b/src/controls/Private/qquicktooltip.cpp @@ -66,9 +66,11 @@ void QQuickTooltip::showText(QQuickItem *item, const QPointF &pos, const QString if (QGuiApplicationPrivate::platformIntegration()-> hasCapability(QPlatformIntegration::MultipleWindows) && QCoreApplication::instance()->inherits("QApplication")) { - QWindow *renderWindow = QQuickRenderControl::renderWindowFor(item->window()); + QPoint quickWidgetOffsetInTlw; + QWindow *renderWindow = QQuickRenderControl::renderWindowFor(item->window(), &quickWidgetOffsetInTlw); QWindow *window = renderWindow ? renderWindow : item->window(); - QPoint mappedPos = window->mapToGlobal(item->mapToScene(pos).toPoint()); + const QPoint offsetInQuickWidget = item->mapToScene(pos).toPoint(); + const QPoint mappedPos = window->mapToGlobal(offsetInQuickWidget + quickWidgetOffsetInTlw); QToolTip::showText(mappedPos, str); } #else |