a8c513765a4a49ef7cd0395922f96453acce922c
chmalee
  Mon Jan 22 16:12:18 2024 -0800
Woops, was too hasty in removing code in the last commit, refs #32697

diff --git src/hg/js/utils.js src/hg/js/utils.js
index 4ab45ee..8ea7efd 100644
--- src/hg/js/utils.js
+++ src/hg/js/utils.js
@@ -3970,31 +3970,31 @@
     let origName = ele.getAttribute("origItemMouseoverId");
     let origTargetBox = boundingRect($("[mouseoverid='"+origName+"']")[0]);
     let mouseX = ev.clientX;
     let mouseY = ev.clientY;
     if ( (mouseX >= (origTargetBox.left - fudgeFactor) && mouseX <= (origTargetBox.right + fudgeFactor) &&
             mouseY >= (origTargetBox.top - fudgeFactor) && mouseY <= (origTargetBox.bottom + fudgeFactor)) ) {
         return true;
     }
     return false;
 }
 
 function mousemoveTimerHelper(triggeringMouseMoveEv, currTooltip) {
     /* Called after 100ms of the mouse being stationary, show a new tooltip
      * if we are over a new mouseover element */
     e = triggeringMouseMoveEv;
-    if (mousedNewItem) {
+    if (mousedNewItem && !(mouseIsOverPopup(e, currTooltip, 0))) {
         mousemoveController.abort();
         hideMouseoverText(currTooltip);
         showMouseoverText(triggeringMouseMoveEv);
     }
 }
 
 function mousemoveHelper(e) {
     /* Helper function for deciding whether to keep a tooltip visible upon a mousemove event */
     if (mousemoveTimer) {
         clearTimeout(mousemoveTimer);
     }
     mousemoveTimer = setTimeout(mousemoveTimerHelper, 100, e, this);
     // we are moving the mouse away, hide the tooltip regardless how much time has passed
     if (!(mouseIsOverPopup(e, this) || mouseIsOverItem(e, this))) {
         mousemoveController.abort();