diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.js b/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.js index f72333c756..43c6fcf38d 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.js +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.js @@ -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) diff --git a/services/web/frontend/js/features/pdf-preview/util/pdf-js-wrapper.js b/services/web/frontend/js/features/pdf-preview/util/pdf-js-wrapper.js index 2648a8fbcb..91673269e5 100644 --- a/services/web/frontend/js/features/pdf-preview/util/pdf-js-wrapper.js +++ b/services/web/frontend/js/features/pdf-preview/util/pdf-js-wrapper.js @@ -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