From 777c0934d6ff9dbaccb4f408becda3af6638ac2f Mon Sep 17 00:00:00 2001 From: Pierre Rossi <pierre.rossi@digia.com> Date: Wed, 9 Apr 2014 18:03:23 +0200 Subject: [PATCH] Fix an false positive assertion with context menu Due to the asynchronous nature of context menu events in chromium, we need to filter out the Qt generated events, and rely of what comes back from the chromium side. We keep a flag to ensure we're always in a consistent state, but the part re-setting it in QWEView went missing. This simply re-adds it together with initializing it to false upon view construction. Change-Id: I5d187faf93742898c96a1951b7dc477ce1b3f5bd Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> --- src/webenginewidgets/api/qwebengineview.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index c8fe9c383..3e6efafbd 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -89,6 +89,7 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page) QWebEngineViewPrivate::QWebEngineViewPrivate() : QWidgetPrivate(QObjectPrivateVersion) , page(0) + , m_pendingContextMenuEvent(false) { } @@ -221,10 +222,12 @@ void QWebEngineView::setZoomFactor(qreal 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(); + d->m_pendingContextMenuEvent = true; return true; } return QWidget::event(ev); -- GitLab