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