summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@digia.com>2014-07-30 17:59:25 +0200
committerLaszlo Agocs <laszlo.agocs@digia.com>2014-07-30 20:55:01 +0200
commitb870fe9a7a7dc7830cae498e111fda0ff9c5f98d (patch)
tree55cc9e78c89ab797185e49026c381f0998924bf6
parentb565c0184253edc64abd3d5ae682352b2abd526c (diff)
downloadqtquickcontrols-b870fe9a7a7dc7830cae498e111fda0ff9c5f98d.tar.gz
Fix tooltip position when used with QQuickWidget
Task-number: QTBUG-39878 Change-Id: I1df4e7b7b17a11234e2569d6502aa9618a590acd Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
-rw-r--r--src/controls/Private/qquicktooltip.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/controls/Private/qquicktooltip.cpp b/src/controls/Private/qquicktooltip.cpp
index e09a6b76..30ac58ee 100644
--- a/src/controls/Private/qquicktooltip.cpp
+++ b/src/controls/Private/qquicktooltip.cpp
@@ -44,6 +44,7 @@
#include <qquickitem.h>
#include <private/qguiapplication_p.h>
#include <qpa/qplatformintegration.h>
+#include <QtQuick/private/qquickrendercontrol_p.h>
#ifdef QT_WIDGETS_LIB
#include <qtooltip.h>
@@ -64,8 +65,12 @@ void QQuickTooltip::showText(QQuickItem *item, const QPointF &pos, const QString
#ifdef QT_WIDGETS_LIB
if (QGuiApplicationPrivate::platformIntegration()->
hasCapability(QPlatformIntegration::MultipleWindows) &&
- QCoreApplication::instance()->inherits("QApplication"))
- QToolTip::showText(item->window()->mapToGlobal(item->mapToScene(pos).toPoint()), str);
+ QCoreApplication::instance()->inherits("QApplication")) {
+ QWindow *renderWindow = QQuickRenderControl::renderWindowFor(item->window());
+ QWindow *window = renderWindow ? renderWindow : item->window();
+ QPoint mappedPos = window->mapToGlobal(item->mapToScene(pos).toPoint());
+ QToolTip::showText(mappedPos, str);
+ }
#else
Q_UNUSED(item);
Q_UNUSED(pos);