summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2013-08-02 14:38:27 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-08-02 15:09:39 +0200
commitd5656fbc4f96ac176abb531a4c8997c57dcea9c9 (patch)
tree27358ab59fd58139f60fa10f7602b83a7fb5c264
parentbc11edeafbc606c54e36cfd8d93451412e9b3c14 (diff)
downloadqtquickcontrols-d5656fbc4f96ac176abb531a4c8997c57dcea9c9.tar.gz
QQuickTooltip should not crash if widget implementation isn't possible
It's not enough to check for QT_NO_WIDGETS because it can fail at runtime if the app was launched with a QGuiApplication or you are on a platform without multiple-window support. Task-number: QTBUG-32779 Change-Id: I13abf9a5063f7d91277bc52b8be79bee19e746af Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
-rw-r--r--src/private/qquicktooltip.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/private/qquicktooltip.cpp b/src/private/qquicktooltip.cpp
index e76fa3ad..ae4366d9 100644
--- a/src/private/qquicktooltip.cpp
+++ b/src/private/qquicktooltip.cpp
@@ -42,6 +42,8 @@
#include "qquicktooltip_p.h"
#include <qquickwindow.h>
#include <qquickitem.h>
+#include <private/qguiapplication_p.h>
+#include <qpa/qplatformintegration.h>
#ifndef QT_NO_WIDGETS
#include <qtooltip.h>
@@ -60,7 +62,10 @@ void QQuickTooltip::showText(QQuickItem *item, const QPointF &pos, const QString
if (!item || !item->window())
return;
#ifndef QT_NO_WIDGETS
- QToolTip::showText(item->window()->mapToGlobal(item->mapToScene(pos).toPoint()), str);
+ if (QGuiApplicationPrivate::platformIntegration()->
+ hasCapability(QPlatformIntegration::MultipleWindows) &&
+ QCoreApplication::instance()->inherits("QApplication"))
+ QToolTip::showText(item->window()->mapToGlobal(item->mapToScene(pos).toPoint()), str);
#else
Q_UNUSED(item);
Q_UNUSED(pos);