From c1038af37d11ca2811aab4bf3869499ddfdc2e41 Mon Sep 17 00:00:00 2001 From: Christophe Avenel Date: Wed, 8 Nov 2023 18:52:05 +0100 Subject: [PATCH] Revert "Add debounce of pan events" This reverts commit e836ffcc61b50c5142c237f3a5522797929c1eaa. --- src/openseadragon.js | 4 ---- src/viewer.js | 47 ++++++++++---------------------------------- 2 files changed, 10 insertions(+), 41 deletions(-) diff --git a/src/openseadragon.js b/src/openseadragon.js index 746d1291..2cb2ac0d 100644 --- a/src/openseadragon.js +++ b/src/openseadragon.js @@ -141,9 +141,6 @@ * DEPRECATED. A relative path to load a DZI file from the server. * Prefer the newer Options.tileSources. * - * @property {Boolean} [debouncePanEvents=false] - * Group multiple move events into one event. This is useful for debouncing. - * * @property {String} [prefixUrl='/images/'] * Prepends the prefixUrl to navImages paths, which is very useful * since the default paths are rarely useful for production @@ -1373,7 +1370,6 @@ function OpenSeadragon( options ){ useCanvas: true, // Use canvas element for drawing if available tileRetryMax: 0, tileRetryDelay: 2500, - debouncePanEvents: false, //INTERFACE RESOURCE SETTINGS prefixUrl: "/images/", diff --git a/src/viewer.js b/src/viewer.js index f76f7524..d82a2d77 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -3097,55 +3097,28 @@ function onCanvasDrag( event ) { * @property {?Object} userData - Arbitrary subscriber-defined object. */ this.raiseEvent( 'canvas-drag', canvasDragEventArgs); - if (this.debouncePanEvents) { - if (!this.dragEventCombined) { - this.dragEventCombined = canvasDragEventArgs; - this.dragEventCombined.timeStamp = canvasDragEventArgs.originalEvent.timeStamp; - } - else { - this.dragEventCombined.delta = this.dragEventCombined.delta.plus(canvasDragEventArgs.delta); - } - if (this.dragEventCombined.timeout) { - clearTimeout(this.dragEventCombined.timeout); - this.dragEventCombined.timeout = null; - } - if (canvasDragEventArgs.originalEvent.timeStamp - this.dragEventCombined.timeStamp > this.debouncePanEvents) { - canvasDragEventArgs = this.dragEventCombined; - this.dragEventCombined = null; - } - else { - this.dragEventCombined.timeout = setTimeout(function () { - // call onCanvasDrag with en event with delta.x and delat.y = 0 - let newEvent = event; - newEvent.delta.x = 0; - newEvent.delta.y = 0; - this.dragEventCombined.timeStamp -= this.debouncePanEvents; - onCanvasDrag.call(this, newEvent); - }.bind(this), this.debouncePanEvents / 5); - return; - } - } - gestureSettings = this.gestureSettingsByDeviceType( canvasDragEventArgs.pointerType ); + + gestureSettings = this.gestureSettingsByDeviceType( event.pointerType ); if(!canvasDragEventArgs.preventDefaultAction && this.viewport){ if (gestureSettings.dblClickDragToZoom && THIS[ this.hash ].draggingToZoom){ - var factor = Math.pow( this.zoomPerDblClickDrag, canvasDragEventArgs.delta.y / 50); + var factor = Math.pow( this.zoomPerDblClickDrag, event.delta.y / 50); this.viewport.zoomBy(factor); } else if (gestureSettings.dragToPan && !THIS[ this.hash ].draggingToZoom) { if( !this.panHorizontal ){ - canvasDragEventArgs.delta.x = 0; + event.delta.x = 0; } if( !this.panVertical ){ - canvasDragEventArgs.delta.y = 0; + event.delta.y = 0; } if(this.viewport.flipped){ - canvasDragEventArgs.delta.x = -canvasDragEventArgs.delta.x; + event.delta.x = -event.delta.x; } if( this.constrainDuringPan ){ - var delta = this.viewport.deltaPointsFromPixels( canvasDragEventArgs.delta.negate() ); + var delta = this.viewport.deltaPointsFromPixels( event.delta.negate() ); this.viewport.centerSpringX.target.value += delta.x; this.viewport.centerSpringY.target.value += delta.y; @@ -3156,14 +3129,14 @@ function onCanvasDrag( event ) { this.viewport.centerSpringY.target.value -= delta.y; if (constrainedBounds.xConstrained) { - canvasDragEventArgs.delta.x = 0; + event.delta.x = 0; } if (constrainedBounds.yConstrained) { - canvasDragEventArgs.delta.y = 0; + event.delta.y = 0; } } - this.viewport.panBy( this.viewport.deltaPointsFromPixels( canvasDragEventArgs.delta.negate() ), gestureSettings.flickEnabled && !this.constrainDuringPan); + this.viewport.panBy( this.viewport.deltaPointsFromPixels( event.delta.negate() ), gestureSettings.flickEnabled && !this.constrainDuringPan); } }