Index: gc_lang/fr/webext/background.js ================================================================== --- gc_lang/fr/webext/background.js +++ gc_lang/fr/webext/background.js @@ -215,19 +215,19 @@ // selected text case "rightClickGCSelectedText": sendCommandToTab("rightClickGCSelectedText", xTab.id); xGCEWorker.postMessage({ sCommand: "parseAndSpellcheck", - dParam: {sText: xInfo.selectionText, sCountry: "FR", bDebug: false, bContext: false}, + dParam: {sText: xInfo.selectionText.normalize("NFC"), sCountry: "FR", bDebug: false, bContext: false}, dInfo: {iReturnPort: xTab.id} }); break; case "rightClickLxgSelectedText": sendCommandToTab("rightClickLxgSelectedText", xTab.id); xGCEWorker.postMessage({ sCommand: "getListOfTokens", - dParam: {sText: xInfo.selectionText}, + dParam: {sText: xInfo.selectionText.normalize("NFC")}, dInfo: {iReturnPort: xTab.id} }); break; // conjugueur case "conjugueur_window": 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 @@ -165,11 +165,11 @@ let sPageText = document.body.innerText; let nPos = sPageText.indexOf("__grammalecte_panel__"); if (nPos >= 0) { sPageText = sPageText.slice(0, nPos); } - return sPageText; + return sPageText.normalize("NFC"); }, createNode: function (sType, oAttr, oDataset=null) { try { let xNode = document.createElement(sType); @@ -224,11 +224,11 @@ if (oGrammalecte.xRightClickedNode !== null) { oGrammalecte.startGCPanel(oGrammalecte.xRightClickedNode); sText = (oGrammalecte.xRightClickedNode.tagName == "TEXTAREA") ? oGrammalecte.xRightClickedNode.value : oGrammalecte.xRightClickedNode.innerText; xGrammalectePort.postMessage({ sCommand: "parseAndSpellcheck", - dParam: {sText: sText, sCountry: "FR", bDebug: false, bContext: false}, + dParam: {sText: sText.normalize("NFC"), sCountry: "FR", bDebug: false, bContext: false}, dInfo: {sTextAreaId: oGrammalecte.xRightClickedNode.id} }); } else { oGrammalecte.showMessage("Erreur. Le node sur lequel vous avez cliqué n’a pas pu être identifié. Sélectionnez le texte à corriger et relancez le correcteur via le menu contextuel."); } @@ -250,11 +250,11 @@ if (oGrammalecte.xRightClickedNode !== null) { oGrammalecte.startLxgPanel(); sText = (oGrammalecte.xRightClickedNode.tagName == "TEXTAREA") ? oGrammalecte.xRightClickedNode.value : oGrammalecte.xRightClickedNode.textContent; xGrammalectePort.postMessage({ sCommand: "getListOfTokens", - dParam: {sText: sText}, + dParam: {sText: sText.normalize("NFC")}, dInfo: {sTextAreaId: oGrammalecte.xRightClickedNode.id} }); } else { oGrammalecte.showMessage("Erreur. Le node sur lequel vous avez cliqué n’a pas pu être identifié. Sélectionnez le texte à analyser et relancez le lexicographe via le menu contextuel."); } Index: gc_lang/fr/webext/content_scripts/panel_gc.js ================================================================== --- gc_lang/fr/webext/content_scripts/panel_gc.js +++ gc_lang/fr/webext/content_scripts/panel_gc.js @@ -448,11 +448,11 @@ _loadText () { let sText = (this.bTextArea) ? this.xNode.value : this.xNode.innerText; let i = 0; let iStart = 0; let iEnd = 0; - sText = sText.replace("\r\n", "\n").replace("\r", "\n"); + sText = sText.replace("\r\n", "\n").replace("\r", "\n").normalize("NFC"); while ((iEnd = sText.indexOf("\n", iStart)) !== -1) { this.dParagraph.set(i, sText.slice(iStart, iEnd)); i++; iStart = iEnd+1; } @@ -464,13 +464,14 @@ if (this.xNode !== null && (this.bTextArea || this.bWriteEN)) { let sText = ""; this.dParagraph.forEach(function (val, key) { sText += val + "\n"; }); + sText = sText.slice(0,-1).normalize("NFC"); if (this.bTextArea) { - this.xNode.value = sText.slice(0,-1); + this.xNode.value = sText; } else { - this.xNode.textContent = sText.slice(0,-1); + this.xNode.textContent = sText; } } } } Index: gc_lang/fr/webext/content_scripts/panel_tf.js ================================================================== --- gc_lang/fr/webext/content_scripts/panel_tf.js +++ gc_lang/fr/webext/content_scripts/panel_tf.js @@ -254,11 +254,11 @@ apply () { try { const t0 = Date.now(); //window.setCursor("wait"); // change pointer this.resetProgressBar(); - let sText = this.xTextArea.value; + let sText = this.xTextArea.value.normalize("NFC"); document.getElementById('grammalecte_tf_progressbar').max = 7; let n1 = 0, n2 = 0, n3 = 0, n4 = 0, n5 = 0, n6 = 0, n7 = 0; // Restructuration if (this.isSelected("o_group_struct")) {