diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index bedcfe78bf..b60648549e 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -476,6 +476,10 @@ void QWidgetWindow::handleTouchEvent(QTouchEvent *event) if (event->type() == QEvent::TouchCancel) { QApplicationPrivate::translateTouchCancel(event->device(), event->timestamp()); event->accept(); + } else if (qApp->d_func()->inPopupMode()) { + // Ignore touch events for popups. This will cause QGuiApplication to synthesise mouse + // events instead, which QWidgetWindow::handleMouseEvent will forward correctly: + event->ignore(); } else { event->setAccepted(QApplicationPrivate::translateRawTouchEvent(m_widget, event->device(), event->touchPoints(), event->timestamp())); }