From 527a3d06a4daf0cd795ae51d7da524f15a8bb30b Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 24 May 2016 13:30:03 +0200 Subject: [PATCH] Fix hiding tooltips on windows. basically an rewrite of commit c47e52c97b6f303e6ffa6f160cdbd3155805f2de. Task-number: QTCREATORBUG-15882 Change-Id: I711f99ed0ae1d1859d5ef5cbd2128215a10b7ed4 Reviewed-by: Nikolai Kosjar Reviewed-by: Eike Ziller Reviewed-by: Orgad Shaneh --- src/libs/utils/tooltip/tooltip.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/libs/utils/tooltip/tooltip.cpp b/src/libs/utils/tooltip/tooltip.cpp index 8947976c91b..7617403c81d 100644 --- a/src/libs/utils/tooltip/tooltip.cpp +++ b/src/libs/utils/tooltip/tooltip.cpp @@ -48,13 +48,6 @@ ToolTip::ToolTip() : m_tip(0), m_widget(0) { connect(&m_showTimer, &QTimer::timeout, this, &ToolTip::hideTipImmediately); connect(&m_hideDelayTimer, &QTimer::timeout, this, &ToolTip::hideTipImmediately); - connect(static_cast(QGuiApplication::instance()), - &QGuiApplication::applicationStateChanged, - [this](Qt::ApplicationState state) { - if (state != Qt::ApplicationActive) - hideTipImmediately(); - } - ); } ToolTip::~ToolTip() @@ -290,6 +283,11 @@ void ToolTip::placeTip(const QPoint &pos, QWidget *w) bool ToolTip::eventFilter(QObject *o, QEvent *event) { + if (m_tip && event->type() == QEvent::ApplicationStateChange + && qApp->applicationState() != Qt::ApplicationActive) { + hideTipImmediately(); + } + if (!o->isWidgetType()) return false;