mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-07 17:05:38 +02:00
Avoid wrong scrolling when calling zoomReset
The goal of this patch is to fix the test: https://searchfox.org/mozilla-central/source/toolkit/components/pdfjs/test/browser_pdfjs_zoom.js It's a regression due to #17790.
This commit is contained in:
parent
ae60221b0e
commit
918b500ca5
3 changed files with 38 additions and 2 deletions
|
@ -55,4 +55,36 @@ describe("PDF viewer", () => {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("Zoom commands", () => {
|
||||||
|
let pages;
|
||||||
|
|
||||||
|
beforeAll(async () => {
|
||||||
|
pages = await loadAndWait("tracemonkey.pdf", ".textLayer .endOfContent");
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async () => {
|
||||||
|
await closePages(pages);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("must check that zoom commands don't scroll the document", async () => {
|
||||||
|
await Promise.all(
|
||||||
|
pages.map(async ([browserName, page]) => {
|
||||||
|
for (let i = 0; i < 10; i++) {
|
||||||
|
await page.evaluate(() => window.PDFViewerApplication.zoomIn());
|
||||||
|
await page.evaluate(() => window.PDFViewerApplication.zoomReset());
|
||||||
|
await page.waitForSelector(
|
||||||
|
`.page[data-page-number="1"] .textLayer .endOfContent`
|
||||||
|
);
|
||||||
|
const scrollTop = await page.evaluate(
|
||||||
|
() => document.getElementById("viewerContainer").scrollTop
|
||||||
|
);
|
||||||
|
expect(scrollTop < 100)
|
||||||
|
.withContext(`In ${browserName}`)
|
||||||
|
.toBe(true);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -127,7 +127,6 @@ class AnnotationEditorLayerBuilder {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.annotationEditorLayer.destroy();
|
this.annotationEditorLayer.destroy();
|
||||||
this.div.remove();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hide() {
|
hide() {
|
||||||
|
|
|
@ -104,7 +104,7 @@ const LAYERS_ORDER = new Map([
|
||||||
["textLayer", 1],
|
["textLayer", 1],
|
||||||
["annotationLayer", 2],
|
["annotationLayer", 2],
|
||||||
["annotationEditorLayer", 3],
|
["annotationEditorLayer", 3],
|
||||||
["xfaLayer", 2],
|
["xfaLayer", 3],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -235,7 +235,12 @@ class PDFPageView {
|
||||||
|
|
||||||
#addLayer(div, name) {
|
#addLayer(div, name) {
|
||||||
const pos = LAYERS_ORDER.get(name);
|
const pos = LAYERS_ORDER.get(name);
|
||||||
|
const oldDiv = this.#layers[pos];
|
||||||
this.#layers[pos] = div;
|
this.#layers[pos] = div;
|
||||||
|
if (oldDiv) {
|
||||||
|
oldDiv.replaceWith(div);
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (let i = pos - 1; i >= 0; i--) {
|
for (let i = pos - 1; i >= 0; i--) {
|
||||||
const layer = this.#layers[i];
|
const layer = this.#layers[i];
|
||||||
if (layer) {
|
if (layer) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue