Bug 1407945: Calculate screenX and screenY in case of HTML element. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D38826
This commit is contained in:
Daisuke Akatsuka
2019-07-23 17:20:49 +00:00
parent c114df43a2
commit b998edb47c

View File

@@ -5410,12 +5410,23 @@ var XULBrowserWindow = {
elt.label = tooltip;
elt.style.direction = direction;
elt.openPopupAtScreen(
browser.screenX + x,
browser.screenY + y,
false,
null
);
let screenX;
let screenY;
if (browser instanceof XULElement) {
// XUL element such as <browser> has the `screenX` and `screenY` fields.
// https://searchfox.org/mozilla-central/source/dom/webidl/XULElement.webidl
screenX = browser.screenX;
screenY = browser.screenY;
} else {
// In case of HTML element such as <iframe> which RDM uses,
// calculate the coordinate manually since it does not have the fields.
const componentBounds = browser.getBoundingClientRect();
screenX = window.screenX + componentBounds.x;
screenY = window.screenY + componentBounds.y;
}
elt.openPopupAtScreen(screenX + x, screenY + y, false, null);
},
hideTooltip() {