From 02906e65b02243ec606dfba85912e81a9513b1e6 Mon Sep 17 00:00:00 2001 From: p0358 Date: Mon, 28 Nov 2022 12:14:09 +0100 Subject: [PATCH] Make context menu work in web inspector --- Source/WebInspectorUI/UserInterface/Base/Main.js | 14 ++++++++++++++ .../UserInterface/Views/ContextMenu.js | 9 +++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Source/WebInspectorUI/UserInterface/Base/Main.js b/Source/WebInspectorUI/UserInterface/Base/Main.js index f244434a7..e57be6b80 100644 --- a/Source/WebInspectorUI/UserInterface/Base/Main.js +++ b/Source/WebInspectorUI/UserInterface/Base/Main.js @@ -1717,6 +1717,20 @@ WI._mouseDown = function(event) { if (WI.toolbar.element.contains(event.target)) WI._toolbarMouseDown(event); + + if (event.button === 2) { // right-click + const contextMenuEvent = new MouseEvent("contextmenu", { + view: window, + bubbles: true, + cancelable: true, + screenX: event.pageX, + screenY: event.pageY, + clientX: event.pageX, + clientY: event.pageY, + ...event + }); + event.target.dispatchEvent(contextMenuEvent); + } }; WI._mouseMoved = function(event) diff --git a/Source/WebInspectorUI/UserInterface/Views/ContextMenu.js b/Source/WebInspectorUI/UserInterface/Views/ContextMenu.js index 95f7bee62..51a550070 100644 --- a/Source/WebInspectorUI/UserInterface/Views/ContextMenu.js +++ b/Source/WebInspectorUI/UserInterface/Views/ContextMenu.js @@ -205,7 +205,7 @@ WI.ContextMenu = class ContextMenu extends WI.ContextSubMenuItem this._event.target.addEventListener("contextmenu", this, true); InspectorFrontendHost.dispatchEventAsContextMenuEvent(this._event); } else - InspectorFrontendHost.showContextMenu(this._event, menuObject); + this._showSoftContextMenu(this._event, menuObject); } if (this._event) @@ -227,7 +227,7 @@ WI.ContextMenu = class ContextMenu extends WI.ContextSubMenuItem callback(this); this._event.target.removeEventListener("contextmenu", this, true); - InspectorFrontendHost.showContextMenu(event, this._menuObject); + this._showSoftContextMenu(event, this._menuObject); this._menuObject = null; event.stopImmediatePropagation(); @@ -251,6 +251,11 @@ WI.ContextMenu = class ContextMenu extends WI.ContextSubMenuItem if (this._handlers[id]) this._handlers[id].call(this); } + + _showSoftContextMenu(event, menuObject) + { + new WI.SoftContextMenu(menuObject).show(event); + } }; WI.ContextMenu.ProposedMenuSymbol = Symbol("context-menu-proposed-menu");