mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-14 07:24:33 +00:00
Merge pull request #9085 from overleaf/ii-pdf-click-position-fix
[web] PDF preview click position error fix GitOrigin-RevId: f2ac73f2a4050b707402c373193ae7a0ecd8ac53
This commit is contained in:
parent
9e37ce165b
commit
bec4827c3f
2 changed files with 19 additions and 5 deletions
services/web/frontend/js/features/pdf-preview
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue