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 679b7f9b19..8284f6b922 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 @@ -192,23 +192,27 @@ function PdfJsViewer({ url, pdfFile }) { const handleTextlayerrendered = textLayer => { const pageElement = textLayer.source.textLayerDiv.closest('.page') - const doubleClickListener = event => { - const clickPosition = pdfJsWrapper.clickPosition( - event, - pageElement, - textLayer - ) + if (!pageElement.dataset.listeningForDoubleClick) { + pageElement.dataset.listeningForDoubleClick = true - if (clickPosition) { - window.dispatchEvent( - new CustomEvent('synctex:sync-to-position', { - detail: clickPosition, - }) + const doubleClickListener = event => { + const clickPosition = pdfJsWrapper.clickPosition( + event, + pageElement, + textLayer ) - } - } - pageElement.addEventListener('dblclick', doubleClickListener) + if (clickPosition) { + window.dispatchEvent( + new CustomEvent('synctex:sync-to-position', { + detail: clickPosition, + }) + ) + } + } + + pageElement.addEventListener('dblclick', doubleClickListener) + } } pdfJsWrapper.eventBus.on('textlayerrendered', handleTextlayerrendered)