diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 8bf38ae6ca9..50f495158e6 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -2806,7 +2806,7 @@ void QWindowPrivate::maybeSynthesizeContextMenuEvent(QMouseEvent *event) qCDebug(lcPopup) << "synthesized after" << (event->isAccepted() ? "ACCEPTED (legacy behavior)" : "ignored") << event->type() << ":" << &e; - QGuiApplication::sendEvent(q_func(), &e); + QCoreApplication::forwardEvent(q_func(), &e, event); } #endif } diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index 251dd9c26c0..04da75fed17 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -14063,9 +14063,13 @@ void tst_QWidget::contextMenuTrigger() { public: int events = 0; + bool spontaneous = false; protected: - void contextMenuEvent(QContextMenuEvent *) override { ++events; } + void contextMenuEvent(QContextMenuEvent *ev) override { + ++events; + spontaneous = ev->spontaneous(); + } }; const Qt::ContextMenuTrigger wasTrigger = QGuiApplication::styleHints()->contextMenuTrigger(); @@ -14082,6 +14086,7 @@ void tst_QWidget::contextMenuTrigger() QGuiApplication::styleHints()->setContextMenuTrigger(Qt::ContextMenuTrigger::Press); QTest::mousePress(window, Qt::RightButton); QCOMPARE(widget.events, 1); + QCOMPARE(widget.spontaneous, true); // QTBUG-132873: Squish expects it QTest::mouseRelease(window, Qt::RightButton); QCOMPARE(widget.events, 1); QGuiApplication::styleHints()->setContextMenuTrigger(Qt::ContextMenuTrigger::Release); @@ -14089,6 +14094,7 @@ void tst_QWidget::contextMenuTrigger() QCOMPARE(widget.events, 1); QTest::mouseRelease(window, Qt::RightButton); QCOMPARE(widget.events, 2); + QCOMPARE(widget.spontaneous, true); } #endif