[Editor] Fix the dimensions of the annotation editor layer (follow-up of #16794)

This commit is contained in:
Calixte Denizet 2023-08-06 21:05:49 +02:00
parent de1f31aae8
commit 400699687e
3 changed files with 19 additions and 5 deletions

View File

@ -22,6 +22,7 @@ import {
} from "./base_factory.js";
import {
BaseException,
FeatureTest,
shadow,
stringToBytes,
Util,
@ -967,8 +968,6 @@ function getCurrentTransformInverse(ctx) {
return [a, b, c, d, e, f];
}
const useRound = globalThis.CSS?.supports?.("width: round(1.5px, 1px)");
/**
* @param {HTMLDivElement} div
* @param {PageViewport} viewport
@ -984,6 +983,7 @@ function setLayerDimensions(
if (viewport instanceof PageViewport) {
const { pageWidth, pageHeight } = viewport.rawDims;
const { style } = div;
const useRound = FeatureTest.isCSSRoundSupported;
const w = `var(--scale-factor) * ${pageWidth}px`,
h = `var(--scale-factor) * ${pageHeight}px`;

View File

@ -373,9 +373,15 @@ class AnnotationEditor {
}
get parentDimensions() {
const { realScale } = this._uiManager.viewParameters;
const [pageWidth, pageHeight] = this.pageDimensions;
return [pageWidth * realScale, pageHeight * realScale];
const {
parentScale,
pageDimensions: [pageWidth, pageHeight],
} = this;
const scaledWidth = pageWidth * parentScale;
const scaledHeight = pageHeight * parentScale;
return FeatureTest.isCSSRoundSupported
? [Math.round(scaledWidth), Math.round(scaledHeight)]
: [scaledWidth, scaledHeight];
}
/**

View File

@ -625,6 +625,14 @@ class FeatureTest {
isMac: navigator.platform.includes("Mac"),
});
}
static get isCSSRoundSupported() {
return shadow(
this,
"isCSSRoundSupported",
globalThis.CSS?.supports?.("width: round(1.5px, 1px)")
);
}
}
const hexNumbers = [...Array(256).keys()].map(n =>