002e60c59c18ca1d87c6e980278a0a8a523425a4 chmalee Tue Dec 2 12:42:34 2025 -0800 Wait until DOMContentLoaded to convert title tags to mouseovers, because the browserTextSize variable will not be set yet otherwise. Make tooltip text size determination default to 12 if no saved text size or no browserTextSize available yet, refs #36754 diff --git src/hg/js/utils.js src/hg/js/utils.js index 2ccee7b046e..57acd7d7cf2 100644 --- src/hg/js/utils.js +++ src/hg/js/utils.js @@ -4193,31 +4193,31 @@ let mouseoverContainer; // Global needed for contextmenu to disable tooltips var suppressTooltips = false; function addMouseover(ele1, text = null, ele2 = null) { /* Adds wrapper elements to control various mouseover events using mouseenter/mouseleave. */ if (!mouseoverContainer) { mouseoverContainer = document.createElement("div"); mouseoverContainer.className = "tooltip"; mouseoverContainer.style.position = "fixed"; mouseoverContainer.style.display = "inline-block"; mouseoverContainer.style.visibility = "hidden"; mouseoverContainer.style.opacity = "0"; mouseoverContainer.id = "mouseoverContainer"; let tooltipTextSize = localStorage.getItem("tooltipTextSize"); - if (tooltipTextSize === null) {tooltipTextSize = window.browserTextSize;} + if (tooltipTextSize === null) {tooltipTextSize = window.browserTextSize !== null ? window.browserTextSize : 12;} mouseoverContainer.style.fontSize = tooltipTextSize + "px"; document.body.append(mouseoverContainer); } if (ele1) { ele1.setAttribute("mouseoverText", text); // Remove title attribute to prevent default browser tooltip if (ele1.title || ele1.dataset.tooltip) { ele1.setAttribute("originalTitle", ele1.title); ele1.title = ""; } // Remove previous listeners if any ele1.removeEventListener("mouseenter", ele1._mouseenterHandler); ele1.removeEventListener("mouseleave", ele1._mouseleaveHandler); // Show tooltip on mouseenter with delay