DevTools - Inspector - tooltip get element width/height wrong when browser zoomed

https://github.com/MoonchildProductions/moebius/pull/54
This commit is contained in:
janekptacijarabaci 2018-02-28 08:41:01 +01:00 committed by Roy Tam
commit 7afe591820
3 changed files with 50 additions and 4 deletions

View file

@ -15,7 +15,10 @@ const {
isNodeValid,
moveInfobar,
} = require("./utils/markup");
const { setIgnoreLayoutChanges } = require("devtools/shared/layout/utils");
const {
setIgnoreLayoutChanges,
getCurrentZoom,
} = require("devtools/shared/layout/utils");
const inspector = require("devtools/server/actors/inspector");
const nodeConstants = require("devtools/shared/dom-node-constants");
@ -670,10 +673,14 @@ BoxModelHighlighter.prototype = extend(AutoRefreshHighlighter.prototype, {
pseudos += ":" + pseudo;
}
let rect = this._getOuterQuad("border").bounds;
let dim = parseFloat(rect.width.toPrecision(6)) +
// We want to display the original `width` and `height`, instead of the ones affected
// by any zoom. Since the infobar can be displayed also for text nodes, we can't
// access the computed style for that, and this is why we recalculate them here.
let zoom = getCurrentZoom(this.win);
let { width, height } = this._getOuterQuad("border").bounds;
let dim = parseFloat((width / zoom).toPrecision(6)) +
" \u00D7 " +
parseFloat(rect.height.toPrecision(6));
parseFloat((height / zoom).toPrecision(6));
this.getElement("infobar-tagname").setTextContent(displayName);
this.getElement("infobar-id").setTextContent(id);