2b1aedbeabcbd667f019a274104f0ac9b9abedb4
chmalee
  Fri Oct 10 11:32:12 2025 -0700
Change gear icon event handlers from mouseenter/mouseleave to pointerenter/pointerleave to catch subtle event handler differences between Chrome and Firefox, refs #34420

diff --git src/hg/js/utils.js src/hg/js/utils.js
index 3170d0a20d0..8ea41015446 100644
--- src/hg/js/utils.js
+++ src/hg/js/utils.js
@@ -3873,35 +3873,35 @@
                             e.preventDefault();
                             e.stopPropagation();
                             e.stopImmediatePropagation();
                             const clickEvent = new MouseEvent("click", {
                                 bubbles: true,
                                 cancelable: true,
                                 view: window,
                                 clientX: tdBtn.getBoundingClientRect().left + 15,
                                 clientY: tdBtn.getBoundingClientRect().top,
                                 button: 1,
                             });
                             tdBtn.children[0].dispatchEvent(clickEvent);
                         });
                         let tdp = tdBtn.querySelector("p.btn");
                         if (tdp) {
-                            span.addEventListener("mouseenter", (e) => {
+                            span.addEventListener("pointerenter", (e) => {
                                 // trigger a mouseover on the actual btn
                                 dragReorder.buttonMouseOver.call(tdp, e);
                             });
-                            span.addEventListener("mouseleave", (e) => {
+                            span.addEventListener("pointerleave", (e) => {
                                 dragReorder.buttonMouseOut.call(tdp, e);
                             });
                         }
                     }
                 }
 
                 // add an 'x' icon in the label area to hide the track
                 let tdSide = document.getElementById("td_side_" + id);
                 if (tdSide) {
                     // mouseover event fires if you stop moving the mouse while still
                     // hovering the element and then move it again, don't make
                     // duplicate btns in that case
                     if (!document.getElementById("close_btn_" + id)) {
                         let btn = document.createElement("span");
                         btn.id = "close_btn_" + id;