Overview
Comment: | [fx] fix copy to clipboard |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fx |
Files: | files | file ages | folders |
SHA3-256: |
9091d60a11eefc7ef31b3090c7fa97c6 |
User & Date: | olr on 2019-05-17 12:48:32 |
Other Links: | manifest | tags |
Context
2019-05-17
| ||
13:53 | [fr] ajustements check-in: 3eaf3a0427 user: olr tags: trunk, fr | |
12:48 | [fx] fix copy to clipboard check-in: 9091d60a11 user: olr tags: trunk, fx | |
10:15 | [fx] Fix information which looks and sounds like an error message check-in: d7fa354cc5 user: olr tags: trunk, fx | |
Changes
Modified gc_lang/fr/webext/content_scripts/init.js from [f1e0b26bd5] to [28bdd077e6].
︙ | ︙ | |||
222 223 224 225 226 227 228 | return xNode; } catch (e) { showError(e); } }, | < < < < < < < < < < < < < < | 222 223 224 225 226 227 228 229 230 231 232 233 234 235 | return xNode; } catch (e) { showError(e); } }, getCaretPosition (xElement) { // JS awfulness again. // recepie from https://stackoverflow.com/questions/4811822/get-a-ranges-start-and-end-offsets-relative-to-its-parent-container let nCaretOffsetStart = 0; let nCaretOffsetEnd = 0; let xSelection = window.getSelection(); if (xSelection.rangeCount > 0) { |
︙ | ︙ |
Modified gc_lang/fr/webext/content_scripts/panel_gc.js from [fa30498314] to [72d2d1fb85].
︙ | ︙ | |||
385 386 387 388 389 390 391 | let xNode = oGrammalecte.createNode("div", {className: "grammalecte_panel_flow_message", textContent: sMessage}); this.xParagraphList.appendChild(xNode); } copyTextToClipboard () { this.startWaitIcon(); try { | | < | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 | let xNode = oGrammalecte.createNode("div", {className: "grammalecte_panel_flow_message", textContent: sMessage}); this.xParagraphList.appendChild(xNode); } copyTextToClipboard () { this.startWaitIcon(); try { let sText = ""; // Dans un shadow, <this.xParent.getElementsByClassName> n’existe pas. let xElem = this.xParent.getElementById("grammalecte_gc_panel"); for (let xNode of xElem.getElementsByClassName("grammalecte_paragraph")) { sText += xNode.textContent + "\n"; } this._sendTextToClipboard(sText); } catch (e) { showError(e); } this.stopWaitIcon(); } _sendTextToClipboard (sText) { let xClipboardButton = this.xParent.getElementById("grammalecte_clipboard_button"); xClipboardButton.textContent = "⇒ presse-papiers"; // Firefox 63+, Chrome 66+ // Working draft: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard navigator.clipboard.writeText(sText) .then( (res) => { window.setTimeout(() => { xClipboardButton.textContent = "📋"; }, 2000); } ) .catch( (e) => { console.error(e); this._sendTextToClipboard(sText, xClipboardButton); } ); } _sendTextToClipboardFallback (sText, xClipboardButton) { try { // Copy to clipboard fallback // recipe from https://github.com/mdn/webextensions-examples/blob/master/context-menu-copy-link-with-types/clipboard-helper.js function setClipboardData (xEvent) { document.removeEventListener("copy", setClipboardData, true); xEvent.stopImmediatePropagation(); xEvent.preventDefault(); xEvent.clipboardData.setData("text/plain", sText); } document.addEventListener("copy", setClipboardData, true); document.execCommand("copy"); window.setTimeout(() => { xClipboardButton.textContent = "📋"; }, 2000); } catch (e) { console.error(e); } } // Lexicographer clearLexicographer () { this.nLxgCount = 0; while (this.xLxgPanelContent.firstChild) { this.xLxgPanelContent.removeChild(this.xLxgPanelContent.firstChild); |
︙ | ︙ |
Modified gc_lang/fr/webext/panel/main.html from [a8f4554d40] to [f78802d907].
︙ | ︙ | |||
178 179 180 181 182 183 184 185 186 187 188 189 190 191 | <p>Il est nécessaire de pouvoir lire ce que contient une page web pour proposer la correction grammaticale. Ceci ne se fait qu’à la demande de l’utilisateur.</p> <p>Contrairement à tous les autres correcteurs grammaticaux, tout se fait en mode hors-ligne. Aucune information n’est transmise.</p> <h3>“Télécharger des fichiers et consulter et modifier l’historique des téléchargements” (Firefox)</h3> <p>Grammalecte requiert les droits de l’interface “downloads” pour pouvoir exporter votre dictionnaire personnel sur le disque dur (par une astuce de programmation).</p> <p>Mais l’extension ne télécharge rien et ne consulte ni ne modifie votre historique de téléchargement.</p> <h2>Revue de code</h2> <p>Le code de l’extension est passé en revue par les équipes de Mozilla et de Google.</p> <h2>Développement et tests</h2> <p>Cette extension est développée et testée avec Firefox. Il se peut qu’il y ait des différences de comportement avec Chrome et les autres navigateurs avec lesquels cette extension est compatible.</p> </section> <!-- #info_page --> | > > > | 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | <p>Il est nécessaire de pouvoir lire ce que contient une page web pour proposer la correction grammaticale. Ceci ne se fait qu’à la demande de l’utilisateur.</p> <p>Contrairement à tous les autres correcteurs grammaticaux, tout se fait en mode hors-ligne. Aucune information n’est transmise.</p> <h3>“Télécharger des fichiers et consulter et modifier l’historique des téléchargements” (Firefox)</h3> <p>Grammalecte requiert les droits de l’interface “downloads” pour pouvoir exporter votre dictionnaire personnel sur le disque dur (par une astuce de programmation).</p> <p>Mais l’extension ne télécharge rien et ne consulte ni ne modifie votre historique de téléchargement.</p> <h3>“Ajouter des données dans le presse-papiers” (Firefox)</h3> <p>Ce droit est nécessaire pour copier, uniquement à votre demande, le texte corrigé dans le presse-papiers. (Cette fonctionnalité est expérimentale et peut ne pas fonctionner.)</p> <h2>Revue de code</h2> <p>Le code de l’extension est passé en revue par les équipes de Mozilla et de Google.</p> <h2>Développement et tests</h2> <p>Cette extension est développée et testée avec Firefox. Il se peut qu’il y ait des différences de comportement avec Chrome et les autres navigateurs avec lesquels cette extension est compatible.</p> </section> <!-- #info_page --> |
︙ | ︙ |