diff options
Diffstat (limited to 'lib/widgets/Api/qwebengineview.cpp')
-rw-r--r-- | lib/widgets/Api/qwebengineview.cpp | 21 |
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" |