summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@qt.io>2020-10-29 15:59:38 +0100
committerMorten Johan Sørvig <morten.sorvig@qt.io>2020-11-12 14:25:07 +0000
commit24239aef35f856c4c06428077e3428cbfdc51775 (patch)
treeb315c2668834a3ab87e386d4be552b39e88b6a3e
parentd03415b7ebbb0989eba7da5186bc7d8ddd9aa67e (diff)
QToolTip: don’t close again on Close event
Prevent recursion: hideTipImmediately() calls QWidget::close(), which will soon start calling QWindow::close(), which will send another close event. Fix this by calling hideTipImmediately() only for Close events not targeted for the tip label. Task-number: QTBUG-46701 Change-Id: I6fd373ce13aed860b0d4836d5fbf470374ed2543 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r--src/widgets/kernel/qtooltip.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/widgets/kernel/qtooltip.cpp b/src/widgets/kernel/qtooltip.cpp
index b397bf9835..387aa476de 100644
--- a/src/widgets/kernel/qtooltip.cpp
+++ b/src/widgets/kernel/qtooltip.cpp
@@ -342,7 +342,13 @@ bool QTipLabel::eventFilter(QObject *o, QEvent *e)
case QEvent::FocusIn:
case QEvent::FocusOut:
#endif
- case QEvent::Close: // For QTBUG-55523 (QQC) specifically: Hide tooltip when windows are closed
+ case QEvent::Close:
+ // For QTBUG-55523 (QQC) specifically: Hide tooltip when windows are closed,
+ // unless the close event is for the this tooltip, in which case we don't
+ // recursively hide/close again.
+ if (o != windowHandle() && o != this)
+ hideTipImmediately();
+ break;
case QEvent::MouseButtonPress:
case QEvent::MouseButtonRelease:
case QEvent::MouseButtonDblClick: