diff options
author | Shawn Rutledge <shawn.rutledge@digia.com> | 2013-08-02 14:38:27 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-02 15:09:39 +0200 |
commit | d5656fbc4f96ac176abb531a4c8997c57dcea9c9 (patch) | |
tree | 27358ab59fd58139f60fa10f7602b83a7fb5c264 | |
parent | bc11edeafbc606c54e36cfd8d93451412e9b3c14 (diff) | |
download | qtquickcontrols-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.cpp | 7 |
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); |