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 true null anchorRight) ? "start" : "end"; // If the popup is not on the right nor on the left. // Basically, that means one is above the other and one is bigger // than the other. // In that case, we can't easily choose a position for the arrow so // we have to guess depending on which side the popup is more close to. } else { pack = (Math.abs(popupLeft - anchorLeft) < Math.abs(popupRight - anchorRight)) ? "start" : "end"; } // In RTL, everything should be inverted. if (window.getComputedStyle(this).direction == "rtl") { pack = (pack == "start") ? "end" : "start"; } arrowbox.pack = pack; 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 = popupTop + popupRect.height / 2 < anchorTop ? "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(); } ]]>