diff --git a/src/gui/compat/removed_api.cpp b/src/gui/compat/removed_api.cpp index c052ce6a250..34e64cd03e6 100644 --- a/src/gui/compat/removed_api.cpp +++ b/src/gui/compat/removed_api.cpp @@ -68,6 +68,17 @@ bool QPageLayout::setBottomMargin(qreal bottomMargin) return setBottomMargin(bottomMargin, OutOfBoundsPolicy::Reject); } +#ifndef QT_NO_CONTEXTMENU +#include +void QWindowSystemInterface::handleContextMenuEvent(QWindow *window, bool mouseTriggered, + const QPoint &pos, const QPoint &globalPos, + Qt::KeyboardModifiers modifiers) +{ + handleContextMenuEvent( + window, mouseTriggered, pos, globalPos, modifiers); +} +#endif // QT_NO_CONTEXTMENU + // #include "qotherheader.h" // // implement removed functions from qotherheader.h // order sections alphabetically diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index e0cee816454..97610802635 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -3072,6 +3072,7 @@ void QGuiApplicationPrivate::processContextMenuEvent(QWindowSystemInterfacePriva QContextMenuEvent ev(QContextMenuEvent::Keyboard, e->pos, e->globalPos, e->modifiers); QGuiApplication::sendSpontaneousEvent(e->window.data(), &ev); + e->eventAccepted = ev.isAccepted(); } #endif diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp index 1875594300c..7154dac6884 100644 --- a/src/gui/kernel/qwindowsysteminterface.cpp +++ b/src/gui/kernel/qwindowsysteminterface.cpp @@ -1028,12 +1028,12 @@ void QWindowSystemInterface::handlePlatformPanelEvent(QWindow *w) } #ifndef QT_NO_CONTEXTMENU -void QWindowSystemInterface::handleContextMenuEvent(QWindow *window, bool mouseTriggered, +QT_DEFINE_QPA_EVENT_HANDLER(bool, handleContextMenuEvent, QWindow *window, bool mouseTriggered, const QPoint &pos, const QPoint &globalPos, Qt::KeyboardModifiers modifiers) { - handleWindowSystemEvent(window, - mouseTriggered, pos, globalPos, modifiers); + return handleWindowSystemEvent( + window, mouseTriggered, pos, globalPos, modifiers); } #endif diff --git a/src/gui/kernel/qwindowsysteminterface.h b/src/gui/kernel/qwindowsysteminterface.h index 4fc61a475d2..1fba8ce8231 100644 --- a/src/gui/kernel/qwindowsysteminterface.h +++ b/src/gui/kernel/qwindowsysteminterface.h @@ -248,10 +248,17 @@ public: #endif // QT_NO_GESTURES static void handlePlatformPanelEvent(QWindow *window); + #ifndef QT_NO_CONTEXTMENU +#if QT_GUI_REMOVED_SINCE(6, 8) static void handleContextMenuEvent(QWindow *window, bool mouseTriggered, const QPoint &pos, const QPoint &globalPos, Qt::KeyboardModifiers modifiers); +#endif + template + static bool handleContextMenuEvent(QWindow *window, bool mouseTriggered, + const QPoint &pos, const QPoint &globalPos, + Qt::KeyboardModifiers modifiers); #endif #if QT_CONFIG(whatsthis) static void handleEnterWhatsThisEvent();