summaryrefslogtreecommitdiff
path: root/lib/widgets/Api/qwebengineview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/widgets/Api/qwebengineview.cpp')
-rw-r--r--lib/widgets/Api/qwebengineview.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/widgets/Api/qwebengineview.cpp b/lib/widgets/Api/qwebengineview.cpp
index d07e710ab..536f075f3 100644
--- a/lib/widgets/Api/qwebengineview.cpp
+++ b/lib/widgets/Api/qwebengineview.cpp
@@ -44,6 +44,9 @@
#include "qwebenginepage_p.h"
+#include <QAction>
+#include <QMenu>
+#include <QContextMenuEvent>
#include <QStackedLayout>
QT_BEGIN_NAMESPACE
@@ -186,6 +189,24 @@ void QWebEngineView::setZoomFactor(qreal factor)
page()->setZoomFactor(factor);
}
+bool QWebEngineView::event(QEvent *ev)
+{
+ Q_D(QWebEngineView);
+ // We swallow spontaneous contextMenu events and synthethize those back later on when we get the
+ // HandleContextMenu callback from chromium
+ if (ev->type() == QEvent::ContextMenu) {
+ ev->accept();
+ return true;
+ }
+ return QWidget::event(ev);
+}
+
+void QWebEngineView::contextMenuEvent(QContextMenuEvent *event)
+{
+ QMenu *menu = page()->createStandardContextMenu();
+ menu->popup(event->globalPos());
+}
+
QT_END_NAMESPACE
#include "moc_qwebengineview.cpp"