Index: gc_lang/fr/webext/content_scripts/init.js ================================================================== --- gc_lang/fr/webext/content_scripts/init.js +++ gc_lang/fr/webext/content_scripts/init.js @@ -44,10 +44,18 @@ lMenu: [], oTFPanel: null, oLxgPanel: null, oGCPanel: null, + + xRightClickedNode: null, + + listenRightClick: function () { + document.addEventListener('contextmenu', function (xEvent) { + this.xRightClickedNode = xEvent.target; + }.bind(this), true); + }, createMenus: function () { let lNode = document.getElementsByTagName("textarea"); for (let xNode of lNode) { if (xNode.style.display !== "none" && xNode.style.visibility !== "hidden") { @@ -141,14 +149,10 @@ /* Node where a right click is done Bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1325814 */ -let xRightClickedNode = null; -document.addEventListener('contextmenu', function (xEvent) { - xRightClickedNode = xEvent.target; -}, true); /* Connexion to the background */ @@ -182,16 +186,16 @@ Commands received from the context menu (Context menu are initialized in background) */ // Grammar checker commands case "rightClickGCEditableNode": - oGrammalecte.startGCPanel(xRightClickedNode); - sText = (xRightClickedNode.tagName == "TEXTAREA") ? xRightClickedNode.value : xRightClickedNode.textContent; + oGrammalecte.startGCPanel(oGrammalecte.xRightClickedNode); + sText = (oGrammalecte.xRightClickedNode.tagName == "TEXTAREA") ? oGrammalecte.xRightClickedNode.value : oGrammalecte.xRightClickedNode.textContent; xGrammalectePort.postMessage({ sCommand: "parseAndSpellcheck", dParam: {sText: sText, sCountry: "FR", bDebug: false, bContext: false}, - dInfo: {sTextAreaId: xRightClickedNode.id} + dInfo: {sTextAreaId: oGrammalecte.xRightClickedNode.id} }); break; case "rightClickGCPage": oGrammalecte.startGCPanel(); xGrammalectePort.postMessage({ @@ -205,15 +209,15 @@ // selected text is sent to the GC worker in the background script. break; // Lexicographer commands case "rightClickLxgEditableNode": oGrammalecte.startLxgPanel(); - sText = (xRightClickedNode.tagName == "TEXTAREA") ? xRightClickedNode.value : xRightClickedNode.textContent; + sText = (oGrammalecte.xRightClickedNode.tagName == "TEXTAREA") ? oGrammalecte.xRightClickedNode.value : oGrammalecte.xRightClickedNode.textContent; xGrammalectePort.postMessage({ sCommand: "getListOfTokens", dParam: {sText: sText}, - dInfo: {sTextAreaId: xRightClickedNode.id} + dInfo: {sTextAreaId: oGrammalecte.xRightClickedNode.id} }); break; case "rightClickLxgPage": oGrammalecte.startLxgPanel(); xGrammalectePort.postMessage({ @@ -237,7 +241,8 @@ /* Start */ +oGrammalecte.listenRightClick(); oGrammalecte.createMenus(); oGrammalecte.createMenus2();