Fix hiding tooltips on windows.

basically an rewrite of commit c47e52c97b.

Task-number: QTCREATORBUG-15882
Change-Id: I711f99ed0ae1d1859d5ef5cbd2128215a10b7ed4
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
David Schulz
2016-05-24 13:30:03 +02:00
parent 0944382239
commit 527a3d06a4

View File

@@ -48,13 +48,6 @@ ToolTip::ToolTip() : m_tip(0), m_widget(0)
{ {
connect(&m_showTimer, &QTimer::timeout, this, &ToolTip::hideTipImmediately); connect(&m_showTimer, &QTimer::timeout, this, &ToolTip::hideTipImmediately);
connect(&m_hideDelayTimer, &QTimer::timeout, this, &ToolTip::hideTipImmediately); connect(&m_hideDelayTimer, &QTimer::timeout, this, &ToolTip::hideTipImmediately);
connect(static_cast<QGuiApplication *>(QGuiApplication::instance()),
&QGuiApplication::applicationStateChanged,
[this](Qt::ApplicationState state) {
if (state != Qt::ApplicationActive)
hideTipImmediately();
}
);
} }
ToolTip::~ToolTip() ToolTip::~ToolTip()
@@ -290,6 +283,11 @@ void ToolTip::placeTip(const QPoint &pos, QWidget *w)
bool ToolTip::eventFilter(QObject *o, QEvent *event) bool ToolTip::eventFilter(QObject *o, QEvent *event)
{ {
if (m_tip && event->type() == QEvent::ApplicationStateChange
&& qApp->applicationState() != Qt::ApplicationActive) {
hideTipImmediately();
}
if (!o->isWidgetType()) if (!o->isWidgetType())
return false; return false;