|
|
@@ -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 (clickPosition) {
|
|
|
- window.dispatchEvent(
|
|
|
- new CustomEvent('synctex:sync-to-position', {
|
|
|
- detail: clickPosition,
|
|
|
- })
|
|
|
+ if (!pageElement.dataset.listeningForDoubleClick) {
|
|
|
+ pageElement.dataset.listeningForDoubleClick = true
|
|
|
+
|
|
|
+ const doubleClickListener = event => {
|
|
|
+ const clickPosition = pdfJsWrapper.clickPosition(
|
|
|
+ event,
|
|
|
+ pageElement,
|
|
|
+ textLayer
|
|
|
)
|
|
|
+
|
|
|
+ if (clickPosition) {
|
|
|
+ window.dispatchEvent(
|
|
|
+ new CustomEvent('synctex:sync-to-position', {
|
|
|
+ detail: clickPosition,
|
|
|
+ })
|
|
|
+ )
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- pageElement.addEventListener('dblclick', doubleClickListener)
|
|
|
+ pageElement.addEventListener('dblclick', doubleClickListener)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
pdfJsWrapper.eventBus.on('textlayerrendered', handleTextlayerrendered)
|