1
0
Fork 0
mirror of https://github.com/overleaf/overleaf.git synced 2025-04-14 07:24:33 +00:00

Merge pull request from overleaf/ii-pdf-click-position-fix

[web] PDF preview click position error fix

GitOrigin-RevId: f2ac73f2a4050b707402c373193ae7a0ecd8ac53
This commit is contained in:
ilkin-overleaf 2022-08-04 12:39:31 +03:00 committed by Copybot
parent 9e37ce165b
commit bec4827c3f
2 changed files with 19 additions and 5 deletions
services/web/frontend/js/features/pdf-preview

View file

@ -193,11 +193,19 @@ function PdfJsViewer({ url, pdfFile }) {
const pageElement = textLayer.source.textLayerDiv.closest('.page')
const doubleClickListener = event => {
window.dispatchEvent(
new CustomEvent('synctex:sync-to-position', {
detail: pdfJsWrapper.clickPosition(event, pageElement, textLayer),
})
const clickPosition = pdfJsWrapper.clickPosition(
event,
pageElement,
textLayer
)
if (clickPosition) {
window.dispatchEvent(
new CustomEvent('synctex:sync-to-position', {
detail: clickPosition,
})
)
}
}
pageElement.addEventListener('dblclick', doubleClickListener)

View file

@ -152,7 +152,13 @@ export default class PDFJSWrapper {
clickPosition(event, pageElement, textLayer) {
const { viewport } = this.viewer.getPageView(textLayer.pageNumber - 1)
const pageRect = pageElement.querySelector('canvas').getBoundingClientRect()
const pageCanvas = pageElement.querySelector('canvas')
if (!pageCanvas) {
return
}
const pageRect = pageCanvas.getBoundingClientRect()
const dx = event.clientX - pageRect.left
const dy = event.clientY - pageRect.top