From e409cfca1765aad5f6cc09c0e0ebd019dd5b37e2 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann <joerg.bornemann@qt.io> Date: Fri, 8 Sep 2017 12:17:20 +0200 Subject: [PATCH] Remove QWebEngineViewPrivate::m_pendingContextMenuEvent This flag was set in QWebEngineView::contextMenuEvent and checked in QWebEnginePage::contextMenuRequested. The latter would bail out if the flag was not set. When the user pressed Shift-F10, the key event was received by RenderWidgetHostViewQtDelegateWidget::event and forwarded to Chromium. Blink's default event handler invoked the context menu, and our callback QWebEnginePage::contextMenuRequested was called. But nothing happened, because m_pendingContextMenuEvent has never been set. There is no reason to have this flag. React on every context menu request just like in the QtQuick implementation. Now pressing Shift-F10 invokes the context menu on web pages. Task-number: QTBUG-58306 Change-Id: I2db1b17604e5521e44613297120a964cc4e4d544 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> --- src/webenginewidgets/api/qwebenginepage.cpp | 3 +-- src/webenginewidgets/api/qwebengineview.cpp | 3 --- src/webenginewidgets/api/qwebengineview_p.h | 1 - 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 51456128f..70f5984c7 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -1397,7 +1397,7 @@ void QWebEnginePagePrivate::wasHidden() bool QWebEnginePagePrivate::contextMenuRequested(const WebEngineContextMenuData &data) { - if (!view || !view->d_func()->m_pendingContextMenuEvent) + if (!view) return false; contextData.reset(); @@ -1423,7 +1423,6 @@ bool QWebEnginePagePrivate::contextMenuRequested(const WebEngineContextMenuData event.ignore(); return false; } - view->d_func()->m_pendingContextMenuEvent = false; return true; } diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 56948bb18..0037f7e50 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -106,7 +106,6 @@ static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *obje QWebEngineViewPrivate::QWebEngineViewPrivate() : page(0) - , m_pendingContextMenuEvent(false) , m_dragEntered(false) { #ifndef QT_NO_ACCESSIBILITY @@ -316,12 +315,10 @@ 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); diff --git a/src/webenginewidgets/api/qwebengineview_p.h b/src/webenginewidgets/api/qwebengineview_p.h index 45b3e266e..f3a37225b 100644 --- a/src/webenginewidgets/api/qwebengineview_p.h +++ b/src/webenginewidgets/api/qwebengineview_p.h @@ -70,7 +70,6 @@ public: QWebEngineViewPrivate(); QWebEnginePage *page; - bool m_pendingContextMenuEvent; bool m_dragEntered; }; -- GitLab