diff --git a/chrome/content/zotero/standalone/standalone.js b/chrome/content/zotero/standalone/standalone.js index 761129c8a5..2ef4ed9e32 100644 --- a/chrome/content/zotero/standalone/standalone.js +++ b/chrome/content/zotero/standalone/standalone.js @@ -780,5 +780,30 @@ function openUILinkIn(url) { ZoteroPane.loadURI(url); } +// Support context menus on HTML text boxes +// +// Adapted from editMenuOverlay.js in Fx68 +window.addEventListener("contextmenu", e => { + const HTML_NS = "http://www.w3.org/1999/xhtml"; + let needsContextMenu = + e.target.ownerDocument == document && + !e.defaultPrevented && + e.target.parentNode.nodeName != "moz-input-box" && + ((["textarea", "input"].includes(e.target.localName) && + e.target.namespaceURI == HTML_NS) || + e.target.closest("search-textbox")); + + if (!needsContextMenu) { + return; + } + + let popup = document.getElementById("contentAreaContextMenu"); + popup.openPopupAtScreen(e.screenX, e.screenY, true); + // Don't show any other context menu at the same time. There can be a + // context menu from an ancestor too but we only want to show this one. + e.preventDefault(); +}); + + window.addEventListener("load", function(e) { ZoteroStandalone.onLoad(e); }, false); window.addEventListener("unload", function(e) { ZoteroStandalone.onUnload(e); }, false); \ No newline at end of file diff --git a/chrome/content/zotero/standalone/standalone.xul b/chrome/content/zotero/standalone/standalone.xul index ab9029778e..d6f748d1d4 100644 --- a/chrome/content/zotero/standalone/standalone.xul +++ b/chrome/content/zotero/standalone/standalone.xul @@ -83,7 +83,7 @@ - + - + +