From a6d147213467f33635987ac2bf52a73b4c065477 Mon Sep 17 00:00:00 2001 From: Joe DF <3848219+joedf@users.noreply.github.com> Date: Thu, 12 May 2022 15:31:51 -0400 Subject: [PATCH] apply only zoom constraint by default for scroll events --- src/viewer.js | 2 +- src/viewport.js | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/viewer.js b/src/viewer.js index ab779142..a1f965f8 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -3371,7 +3371,7 @@ function onCanvasScroll( event ) { factor, gestureSettings.zoomToRefPoint ? this.viewport.pointFromPixel( event.position, true ) : null ); - this.viewport.applyConstraints(); + this.viewport.applyZoomConstraints(); } } diff --git a/src/viewport.js b/src/viewport.js index be350af9..a8a53fa2 100644 --- a/src/viewport.js +++ b/src/viewport.js @@ -591,6 +591,25 @@ $.Viewport.prototype = { return this; }, + /** + * Enforces the minZoom, maxZoom constraints by zooming to the closest acceptable zoom. + * @function + * @param {Boolean} [immediately=false] + * @return {OpenSeadragon.Viewport} Chainable. + * @fires OpenSeadragon.Viewer.event:constrain + */ + applyZoomConstraints: function(immediately) { + var actualZoom = this.getZoom(); + var constrainedZoom = this._applyZoomConstraints(actualZoom); + + if (actualZoom !== constrainedZoom) { + this.zoomTo(constrainedZoom, this.zoomPoint, immediately); + } + + this._raiseConstraintsEvent(immediately); + return this; + }, + /** * Equivalent to {@link OpenSeadragon.Viewport#applyConstraints} * @function