diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 80705300333..dc55c3c7876 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -2559,7 +2559,12 @@ bool QWindow::event(QEvent *ev) static const QEvent::Type contextMenuTrigger = QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::ContextMenuOnMouseRelease).toBool() ? QEvent::MouseButtonRelease : QEvent::MouseButtonPress; - if (QMouseEvent *me = static_cast(ev); + auto asMouseEvent = [](QEvent *ev) { + const auto t = ev->type(); + return t == QEvent::MouseButtonPress || t == QEvent::MouseButtonRelease + ? static_cast(ev) : nullptr ; + }; + if (QMouseEvent *me = asMouseEvent(ev); me && ev->type() == contextMenuTrigger && me->button() == Qt::RightButton) { QSinglePointEvent *pev = static_cast(ev); QContextMenuEvent e(QContextMenuEvent::Mouse, me->position().toPoint(),