summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qapplication.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/kernel/qapplication.cpp')
-rw-r--r--src/widgets/kernel/qapplication.cpp9
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();