diff options
Diffstat (limited to 'src/widgets/kernel/qapplication.cpp')
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 42a1c0259d..f438f60e47 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -3326,6 +3326,15 @@ bool QApplication::notify(QObject *receiver, QEvent *e) { QWidget* w = static_cast<QWidget *>(receiver); QWheelEvent* wheel = static_cast<QWheelEvent*>(e); + + // QTBUG-40656, combo and other popups should close when the main window gets a wheel event. + while (QWidget *popup = QApplication::activePopupWidget()) { + if (w->window() != popup) + popup->close(); + else + break; + } + QPoint relpos = wheel->pos(); bool eventAccepted = wheel->isAccepted(); |