diff --git a/.DS_Store b/.DS_Store index 2c43701..d4bca9f 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/README.md b/README.md index ed42f06..980fdc3 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,9 @@ Official repo of https://addons.mozilla.org/firefox/addon/emoji-sav/. [](https://addons.mozilla.org/firefox/addon/emoji-sav/) [](https://chrome.google.com/webstore/detail/emoji/kjepehkgbooeigeflhiogplnckadlife) [](https://microsoftedge.microsoft.com/addons/detail/emoji/ejcgfbaipbelddlbokgcfajefbnnagfm) -To support me, you can do a donation :smile: with **PayPal**, **LiberaPay** or **Ko-Fi**: +To support me, you can do a donation :smile: with **PayPal** or **LiberaPay**: -Donate using Liberapay [](https://paypal.me/saveriomorelli) [](https://ko-fi.com/R5R31UQ8G) +Donate using Liberapay [](https://paypal.me/saveriomorelli) ## Description @@ -41,7 +41,7 @@ Emojis are divided in some sections, to help you to find the correct emoji quick - Most used emojis: in the first tab you can find the emoji you use more - Clear, modern and customisable UI - Simplicity: with a single click you can copy an emoji -- Short-cut: open the add-on with `Ctrl`/`Cmd`+`Alt`+`A` +- Shortcut: open the add-on with `Ctrl`/`Cmd`+`Alt`+`A` (you can customise this) - Tooltip: every emoji has the tooltip, so you can learn what's the name of an emoji ## How to contribute @@ -54,7 +54,7 @@ Also, you can translate the extension (and the emojis description as well) on [C See folder screenshots to see screenshots also of the older versions. - + ## License [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FSav22999%2Femoji.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FSav22999%2Femoji?ref=badge_large) diff --git a/js/emoji-insert-directly.js b/js/emoji-insert-directly.js index da5a08b..5f7738b 100644 --- a/js/emoji-insert-directly.js +++ b/js/emoji-insert-directly.js @@ -7,12 +7,33 @@ if (browserOrChromeIndex === 0) { } var lastRequestNumber = -1; browserAgentSettings.runtime.onMessage.addListener(function (request, sender, sendResponse) { - if (request.requestNumber !== lastRequestNumber) { + if (request.type === "insert-emoji-by-injection" && request.requestNumber !== lastRequestNumber) { let active = document.activeElement; if (["input", "textarea"].includes(active.tagName.toLowerCase())) { let pre = (active.value).substring(0, active.selectionStart); let post = (active.value).substring(active.selectionEnd, active.value.length); active.value = pre + request.emoji + post; + } else if (["p", "div", "span"].includes(active.tagName.toLowerCase()) && active.contentEditable) { + try { + let position = {start: 0, end: 0}; + let selection = document.getSelection(); + let range = selection.getRangeAt(0); + let range2 = range.cloneRange(); + range2.selectNodeContents(active); + position.start = range.startOffset; + position.end = range.endOffset; + let pre = (active.textContent).substring(0, position.start); + let post = (active.textContent).substring(position.end, active.textContent.length); + active.textContent = pre + request.emoji + post; + + let range3 = document.createRange(); + range3.setStart(active.childNodes[0], position.start + (request.emoji.length)); + range3.setEnd(active.childNodes[0], position.start + (request.emoji.length)); + selection.removeAllRanges(); + selection.addRange(range3); + } catch (e) { + console.error("Exception: " + e); + } } lastRequestNumber = request.requestNumber; //update the request number used to avoid to show more emoji (because of more injection scripts) } diff --git a/js/emojis.js b/js/emojis.js index 6bb1b9f..a45810c 100644 --- a/js/emojis.js +++ b/js/emojis.js @@ -24,7 +24,7 @@ emojis_language[lang] = []; emojis_language[lang][0] = {}; /*smileys*/ emojis_language[lang][2] = { - "😀": ["Grinning Face", ":)", "Happy Face", "Smiley Face"], + "😀": ["Grinning Face", ":grinning:", ":grinning_face:", ":)", "Happy Face", "Smiley Face"], "😃": ["Grinning Face with Big Eyes", ":D", "Happy Face", "Smiley Face", "Smiling Face with Open Mouth"], "😄": ["Grinning Face with Smiling Eyes", "Happy Face", "Smiley Face", "Grinning Face With Squinting Eyes", "Smiling Face with Open Mouth and Smiling Eyes"], "😁": ["Beaming Face with Smiling Eyes", "Grinning Face with Smiling Eyes"], diff --git a/js/release_notes.js b/js/release_notes.js index b04fe66..1d6384f 100644 --- a/js/release_notes.js +++ b/js/release_notes.js @@ -108,6 +108,15 @@ function releaseNotes(release) { release_notes_text += "
  • Updated languages
  • "; release_notes_text += ""; break; + + case "3.17": + release_notes_text = ""; + release_notes_text += "
    Remember to buy me a coffee if you like the add-on and you want to support me

    PayPay LiberaPay
    "; + break; + //release_notes_text += "
  • Added shortcodes to find emojis, for example :grinning:
  • "; } return release_notes_text; } \ No newline at end of file diff --git a/js/script.js b/js/script.js index 9680542..2e596c6 100644 --- a/js/script.js +++ b/js/script.js @@ -119,7 +119,7 @@ function loaded() { checkOpenedAddon(); showNewsInRelease(false); - let shortcuts = browser.commands.getAll(); + let shortcuts = browserAgentSettings.commands.getAll(); shortcuts.then(getCurrentShortcuts); } @@ -131,7 +131,7 @@ function getCurrentShortcuts(commands) { function updateShortcut() { const commandName = '_execute_browser_action'; - browser.commands.update({ + browserAgentSettings.commands.update({ name: commandName, shortcut: currentShortcut }); } @@ -179,7 +179,7 @@ function copyEmoji(text, tooltip) { type: "requestNumber" }).then((response) => { browserAgentSettings.tabs.sendMessage(tabs[0].id, { - emoji: text, requestNumber: response.requestNumber + type: "insert-emoji-by-injection", emoji: text, requestNumber: response.requestNumber }).catch(onError); addToMostUsedCopyEmoji(nameOfSetting, text, tooltip); }).catch(onError); @@ -642,11 +642,6 @@ function setPopUpUI() { browserAgentSettings.tabs.create({url: url_to_use}); window.close(); }; - document.getElementById("donate-kofi-settings").onclick = function () { - let url_to_use = linkDonate[1]; - browserAgentSettings.tabs.create({url: url_to_use}); - window.close(); - }; document.getElementById("donate-liberapay-settings").onclick = function () { let url_to_use = linkDonate[2]; browserAgentSettings.tabs.create({url: url_to_use}); @@ -684,7 +679,7 @@ function setPopUpUI() { let ctrl_alt_shift = document.getElementById("key-shortcut-ctrl-alt-shift-selected").value; let letter_number = document.getElementById("key-shortcut-selected").value; currentShortcut = ctrl_alt_shift + "+" + letter_number; - updateShortcut() + updateShortcut(); saveSettings(); } @@ -693,7 +688,7 @@ function setPopUpUI() { let ctrl_alt_shift = document.getElementById("key-shortcut-ctrl-alt-shift-selected").value; let letter_number = document.getElementById("key-shortcut-selected").value; currentShortcut = ctrl_alt_shift + "+" + letter_number; - updateShortcut() + updateShortcut(); saveSettings(); } @@ -1408,7 +1403,6 @@ function setTheme() { removeThemeClassId("font-family-selected", "-select"); removeThemeClassId("extension-icon-selected", "-select"); removeThemeClassId("donate-paypal-settings", "-btn-settings-button"); - removeThemeClassId("donate-kofi-settings", "-btn-settings-button"); removeThemeClassId("donate-liberapay-settings", "-btn-settings-button"); removeThemeClassId("translate-settings", "-btn-settings-button"); removeThemeClassId("language-selected", "-select"); @@ -1441,7 +1435,6 @@ function setTheme() { document.getElementById("save-data-settings").classList.add(theme + "-btn-settings-button"); document.getElementById("reset-data-settings").classList.add(theme + "-btn-settings-button"); document.getElementById("donate-paypal-settings").classList.add(theme + "-btn-settings-button"); - document.getElementById("donate-kofi-settings").classList.add(theme + "-btn-settings-button"); document.getElementById("donate-liberapay-settings").classList.add(theme + "-btn-settings-button"); document.getElementById("translate-settings").classList.add(theme + "-btn-settings-button"); document.getElementById("language-selected").classList.add(theme + "-select"); @@ -1734,7 +1727,6 @@ function setLanguageUI() { document.getElementById("need-help-settings").value = strings["settings"]["button-need-help"]; document.getElementById("donate-paypal-settings").value = strings["settings"]["button-paypal"]; document.getElementById("donate-liberapay-settings").value = strings["settings"]["button-liberapay"]; - document.getElementById("donate-kofi-settings").value = strings["settings"]["button-ko-fi"]; document.getElementById("translate-settings").value = strings["settings"]["button-translate"]; document.getElementById("made-in-basilicata-settings").innerHTML = strings["settings"]["label-made-with-heart-basilicata"].replaceAll("{{properties}}", "class='font-" + font_family + " font-size-16'"); document.getElementById("select-ctrl-shortcut").textContent = strings["settings"]["label-ctrl-" + currentOS]; diff --git a/manifest.json b/manifest.json index f4a4e84..b1cf1fc 100644 --- a/manifest.json +++ b/manifest.json @@ -1,8 +1,8 @@ { "manifest_version": 2, "name": "Emoji", - "version": "3.16.1", - "description": "It permits just with a single click to copy and insert an emoji. You can also customise the add-on.", + "version": "3.17", + "description": "Insert emojis using a web browser, and customise the experience and the add-on in Settings.", "icons": { "16": "./img/icon-dark-16.png", "24": "./img/icon-dark-24.png", diff --git a/popup.html b/popup.html index b876115..65efdbd 100644 --- a/popup.html +++ b/popup.html @@ -249,8 +249,6 @@

    Settings

    id="donate-paypal-settings"> - diff --git a/screenshots/.DS_Store b/screenshots/.DS_Store index 8990d06..b61ac15 100644 Binary files a/screenshots/.DS_Store and b/screenshots/.DS_Store differ diff --git a/screenshots/3.17/1.png b/screenshots/3.17/1.png new file mode 100644 index 0000000..5c8fd06 Binary files /dev/null and b/screenshots/3.17/1.png differ diff --git a/screenshots/3.17/1.xcf b/screenshots/3.17/1.xcf new file mode 100644 index 0000000..89e7b40 Binary files /dev/null and b/screenshots/3.17/1.xcf differ diff --git a/screenshots/3.17/2.png b/screenshots/3.17/2.png new file mode 100644 index 0000000..72c9982 Binary files /dev/null and b/screenshots/3.17/2.png differ diff --git a/screenshots/3.17/2.xcf b/screenshots/3.17/2.xcf new file mode 100644 index 0000000..fced8fb Binary files /dev/null and b/screenshots/3.17/2.xcf differ diff --git a/screenshots/3.17/3.png b/screenshots/3.17/3.png new file mode 100644 index 0000000..a969a3d Binary files /dev/null and b/screenshots/3.17/3.png differ diff --git a/screenshots/3.17/3.xcf b/screenshots/3.17/3.xcf new file mode 100644 index 0000000..cc1bb70 Binary files /dev/null and b/screenshots/3.17/3.xcf differ diff --git a/screenshots/3.17/4.png b/screenshots/3.17/4.png new file mode 100644 index 0000000..d5c1889 Binary files /dev/null and b/screenshots/3.17/4.png differ diff --git a/screenshots/3.17/4.xcf b/screenshots/3.17/4.xcf new file mode 100644 index 0000000..d40148a Binary files /dev/null and b/screenshots/3.17/4.xcf differ