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();
}
]]>