Index: gc_lang/fr/xpi/data/gc_panel.css ================================================================== --- gc_lang/fr/xpi/data/gc_panel.css +++ gc_lang/fr/xpi/data/gc_panel.css @@ -157,10 +157,14 @@ color: hsla(210, 10%, 20%, 1); } #sc_tooltip { border: 3px solid hsl(0, 50%, 30%); color: hsla(0, 10%, 20%, 1); +} +#gc_tooltip_arrow, #sc_tooltip_arrow { + position: absolute; + display: none; } #gc_tooltip #gc_rule_id { display: none; background-color: hsla(0, 5%, 35%, 1); padding: 2px 5px; Index: gc_lang/fr/xpi/data/gc_panel.html ================================================================== --- gc_lang/fr/xpi/data/gc_panel.html +++ gc_lang/fr/xpi/data/gc_panel.html @@ -48,10 +48,13 @@
+ + ^ + ^

Index: gc_lang/fr/xpi/data/gc_panel.js ================================================================== --- gc_lang/fr/xpi/data/gc_panel.js +++ gc_lang/fr/xpi/data/gc_panel.js @@ -296,12 +296,15 @@ try { hideAllTooltips(); let xNodeErr = document.getElementById(sNodeErrorId); let sTooltipId = (xNodeErr.dataset.error_type === "grammar") ? "gc_tooltip" : "sc_tooltip"; let xNodeTooltip = document.getElementById(sTooltipId); + let xNodeTooltipArrow = document.getElementById(sTooltipId+"_arrow"); let nLimit = nPanelWidth - 330; // paragraph width - tooltip width - xNodeTooltip.style.top = (xNodeErr.offsetTop + 16) + "px"; + xNodeTooltipArrow.style.top = (xNodeErr.offsetTop + 16) + "px" + xNodeTooltipArrow.style.left = (xNodeErr.offsetLeft + Math.floor(xNodeErr.offsetWidth / 2)) + "px" + xNodeTooltip.style.top = (xNodeErr.offsetTop + 20) + "px"; xNodeTooltip.style.left = (xNodeErr.offsetLeft > nLimit) ? nLimit + "px" : xNodeErr.offsetLeft + "px"; if (xNodeErr.dataset.error_type === "grammar") { // grammar error document.getElementById("gc_message").textContent = xNodeErr.dataset.gc_message; if (xNodeErr.dataset.gc_url != "") { @@ -318,10 +321,11 @@ xGCSugg.appendChild(_createSuggestion(xNodeErr.dataset.error_id, iSugg, sSugg)); xGCSugg.appendChild(document.createTextNode(" ")); iSugg += 1; } } + xNodeTooltipArrow.style.display = "block"; xNodeTooltip.style.display = "block"; if (xNodeErr.dataset.error_type === "spelling") { // spelling mistake document.getElementById("sc_ignore").dataset.error_id = xNodeErr.dataset.error_id; //console.log("getSuggFor: " + xNodeErr.textContent.trim() + " // error_id: " + xNodeErr.dataset.error_id); @@ -365,10 +369,12 @@ } function hideAllTooltips () { document.getElementById("gc_tooltip").style.display = "none"; document.getElementById("sc_tooltip").style.display = "none"; + document.getElementById("gc_tooltip_arrow").style.display = "none"; + document.getElementById("sc_tooltip_arrow").style.display = "none"; } function setSpellSuggestionsFor (sWord, sSuggestions, sErrId) { // spell checking suggestions try { ADDED gc_lang/fr/xpi/data/img/gc_tooltip_arrow.png Index: gc_lang/fr/xpi/data/img/gc_tooltip_arrow.png ================================================================== --- gc_lang/fr/xpi/data/img/gc_tooltip_arrow.png +++ gc_lang/fr/xpi/data/img/gc_tooltip_arrow.png cannot compute difference between binary files ADDED gc_lang/fr/xpi/data/img/sc_tooltip_arrow.png Index: gc_lang/fr/xpi/data/img/sc_tooltip_arrow.png ================================================================== --- gc_lang/fr/xpi/data/img/sc_tooltip_arrow.png +++ gc_lang/fr/xpi/data/img/sc_tooltip_arrow.png cannot compute difference between binary files