return this.boxObject.QueryInterface(Components.interfaces.nsIPopupBoxObject); width) width = accel.boxObject.width; } } } for (var i = 0; i < array.length; i++) array[i].width = width; ]]> 0 = Math.round(anchorRect.right)) ? 1 : 0; var vertPos = (Math.round(popupRect.bottom) <= Math.round(anchorRect.top)) ? -1 : (Math.round(popupRect.top) >= Math.round(anchorRect.bottom)) ? 1 : 0; var anchorClass = ""; var hideAnchor = false; if (horizPos == 0) { container.orient = "vertical"; arrowbox.orient = ""; if (vertPos == 0) { hideAnchor = true; } else { let rtl = (window.getComputedStyle(this).direction == "rtl"); arrowbox.pack = (popupRect.left + popupRect.width / 2 < anchorRect.left) != rtl ? "end" : "start"; if (vertPos == 1) { container.dir = ""; anchorClass = "top"; } else if (vertPos == -1) { container.dir = "reverse"; anchorClass = "bottom"; } } } else if (vertPos == 0) { container.orient = ""; arrowbox.orient = "vertical"; if (horizPos == 0) { hideAnchor = true; } else { arrowbox.pack = popupRect.top + popupRect.height / 2 < anchorRect.top ? "end" : "start"; if (horizPos == 1) { container.dir = ""; anchorClass = "left"; } else if (horizPos == -1) { container.dir = "reverse"; anchorClass = "right"; } } } else { hideAnchor = true; } arrow.hidden = hideAnchor; arrow.setAttribute("side", anchorClass); this.setAttribute("side", anchorClass); // set fading var fade = this.getAttribute("fade"); var fadeDelay = (fade == "fast") ? 1 : fade == "slow" ? 4000 : 0; if (fadeDelay) { this._fadeTimer = setTimeout(function (self) { self.style.opacity = 0.2; }, fadeDelay, this); } ]]> clearTimeout(this._fadeTimer); this.style.removeProperty("opacity"); return Components.interfaces.nsIAccessibleProvider.XULTooltip; 0 false 1) this.hidePopup(); return; } // find out if the node we are entering is one of our anonymous children while (rel) { if (rel == this) break; rel = rel.parentNode; } // if the entered node is not a descendant of ours, hide the tooltip if (rel != this && this._isMouseOver) { this.hidePopup(); } ]]>