diff options
author | Morten Johan Sørvig <morten.sorvig@qt.io> | 2020-10-29 15:59:38 +0100 |
---|---|---|
committer | Morten Johan Sørvig <morten.sorvig@qt.io> | 2020-11-12 14:25:07 +0000 |
commit | 24239aef35f856c4c06428077e3428cbfdc51775 (patch) | |
tree | b315c2668834a3ab87e386d4be552b39e88b6a3e | |
parent | d03415b7ebbb0989eba7da5186bc7d8ddd9aa67e (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.cpp | 8 |
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: |