From 84988886a5503e236ac2eb839cf62a01d8a4789b Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Mon, 16 Apr 2018 13:40:53 -0700 Subject: QToolTip: Hide tooltip on key event on macOS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This brings back Qt 4 behavior. The difference is that we only ignore modifier-only key events, as it's done natively. Task-number: QTBUG-49462 Change-Id: I02f2313e1164ba185336d80ac5cc16ce6d883b79 Reviewed-by: Morten Johan Sørvig --- src/widgets/kernel/qtooltip.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/widgets/kernel/qtooltip.cpp') diff --git a/src/widgets/kernel/qtooltip.cpp b/src/widgets/kernel/qtooltip.cpp index baf717d715..ed7184302a 100644 --- a/src/widgets/kernel/qtooltip.cpp +++ b/src/widgets/kernel/qtooltip.cpp @@ -317,15 +317,13 @@ void QTipLabel::timerEvent(QTimerEvent *e) bool QTipLabel::eventFilter(QObject *o, QEvent *e) { switch (e->type()) { -#if 0 // Used to be included in Qt4 for Q_WS_MAC +#ifdef Q_OS_MACOS case QEvent::KeyPress: case QEvent::KeyRelease: { - int key = static_cast(e)->key(); - Qt::KeyboardModifiers mody = static_cast(e)->modifiers(); - if (!(mody & Qt::KeyboardModifierMask) - && key != Qt::Key_Shift && key != Qt::Key_Control - && key != Qt::Key_Alt && key != Qt::Key_Meta) - hideTip(); + const int key = static_cast(e)->key(); + // Anything except key modifiers or caps-lock, etc. + if (key < Qt::Key_Shift || key > Qt::Key_ScrollLock) + hideTipImmediately(); break; } #endif -- cgit v1.2.3