Merge pull request #16798 from calixteman/issue16797

[Editor] Fix the dimensions of the annotation editor layer (follow-up of #16794)
This commit is contained in:
calixteman 2023-08-08 14:06:50 +02:00 committed by GitHub
commit 15c21d7758
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 5 deletions

View File

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

View File

@ -373,9 +373,15 @@ class AnnotationEditor {
} }
get parentDimensions() { get parentDimensions() {
const { realScale } = this._uiManager.viewParameters; const {
const [pageWidth, pageHeight] = this.pageDimensions; parentScale,
return [pageWidth * realScale, pageHeight * realScale]; 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"), 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 => const hexNumbers = [...Array(256).keys()].map(n =>