1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 14:48:08 +02:00

Merge pull request #19232 from nicolo-ribaudo/scroll-to-search-result

Fix left offset when scrolling to search result
This commit is contained in:
Tim van der Meij 2024-12-19 20:52:46 +01:00 committed by GitHub
commit 7d0fe45443
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 36 additions and 1 deletions

View file

@ -126,4 +126,31 @@ describe("find bar", () => {
);
});
});
describe("issue19207.pdf", () => {
let pages;
beforeAll(async () => {
pages = await loadAndWait("issue19207.pdf", ".textLayer", 200);
});
afterAll(async () => {
await closePages(pages);
});
it("must scroll to the search result text", async () => {
await Promise.all(
pages.map(async ([browserName, page]) => {
// Search for "40"
await page.click("#viewFindButton");
await page.waitForSelector("#viewFindButton", { hidden: false });
await page.type("#findInput", "40");
const highlight = await page.waitForSelector(".textLayer .highlight");
expect(await highlight.isIntersectingViewport()).toBeTrue();
})
);
});
});
});

View file

@ -690,3 +690,4 @@
!inks_basic.pdf
!issue19182.pdf
!issue18911.pdf
!issue19207.pdf

BIN
test/pdfs/issue19207.pdf Normal file

Binary file not shown.

View file

@ -193,8 +193,15 @@ class TextHighlighter {
span.className = `${className} appended`;
span.append(node);
div.append(span);
return className.includes("selected") ? span.offsetLeft : 0;
if (className.includes("selected")) {
const { left } = span.getClientRects()[0];
const parentLeft = div.getBoundingClientRect().left;
return left - parentLeft;
}
return 0;
}
div.append(node);
return 0;
}