summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qwidgetwindow.cpp
diff options
context:
space:
mode:
authorNodir Temirkhodjaev <[email protected]>2025-07-05 15:40:33 +0500
committerShawn Rutledge <[email protected]>2025-07-08 20:39:16 +0200
commit5f89ae8faa1b3eebe32fa4e8081fb643dc06b834 (patch)
treeec427c1330f8bdd0abda81e38157ef16b483d87e /src/widgets/kernel/qwidgetwindow.cpp
parent3a629595eb90417bc2612f4b98de8e571fa638d8 (diff)
Restore QContextMenuEvent for a popup
Amends e4ef0f03e6f1fddc397980fd7fbf6f6b829f16d9 Fixes: QTBUG-134757 Pick-to: 6.8 6.9 6.10 Change-Id: Ibb1c069be20057160c404efe9b6afc3ca7d6c15b Reviewed-by: Nodir Temirkhodjaev <[email protected]> Reviewed-by: Shawn Rutledge <[email protected]> Reviewed-by: Richard Moe Gustavsen <[email protected]>
Diffstat (limited to 'src/widgets/kernel/qwidgetwindow.cpp')
-rw-r--r--src/widgets/kernel/qwidgetwindow.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp
index 4cf2934a2dc..b85446121bd 100644
--- a/src/widgets/kernel/qwidgetwindow.cpp
+++ b/src/widgets/kernel/qwidgetwindow.cpp
@@ -622,7 +622,21 @@ void QWidgetWindow::handleMouseEvent(QMouseEvent *event)
}
}
QApplicationPrivate::replayMousePress = false;
+#ifndef QT_NO_CONTEXTMENU
+ } else if (event->type() == QGuiApplicationPrivate::contextMenuEventType()
+ && event->button() == Qt::RightButton) {
+ QWidget *receiver = activePopupWidget;
+ if (qt_button_down)
+ receiver = qt_button_down;
+ else if (popupChild)
+ receiver = popupChild;
+ const QPoint localPos = receiver->mapFromGlobal(event->globalPosition().toPoint());
+ QContextMenuEvent e(QContextMenuEvent::Mouse, localPos, event->globalPosition().toPoint(), event->modifiers());
+ QApplication::forwardEvent(receiver, &e, event);
+ }
+#else
}
+#endif
if (releaseAfter) {
qt_button_down = nullptr;