From df878f6f82a77081671eeab50aca9e23437d6e85 Mon Sep 17 00:00:00 2001 From: Grant Echols Date: Wed, 24 Jun 2015 10:48:00 -0600 Subject: [PATCH] Changed preserveImageSizeOnResize to require autoResize=true. Refactored resizing code to share more code. Removed preserveImageSizeOnResize parameter from viewer. --- src/openseadragon.js | 2 +- src/viewer.js | 46 +++++++++++++++++++------------------------- 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/src/openseadragon.js b/src/openseadragon.js index 0c6df401..b7f7f5c1 100644 --- a/src/openseadragon.js +++ b/src/openseadragon.js @@ -253,7 +253,7 @@ * Set to false to prevent polling for viewer size changes. Useful for providing custom resize behavior. * * @property {Boolean} [preserveImageSizeOnResize=false] - * Set to true to have the image size preserved when the viewer is resized. This requires autoResize=false. + * Set to true to have the image size preserved when the viewer is resized. This requires autoResize=true (default). * * @property {Number} [pixelsPerWheelLine=40] * For pixel-resolution scrolling devices, the number of pixels equal to one scroll line. diff --git a/src/viewer.js b/src/viewer.js index 50dd8831..3e318528 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -408,7 +408,6 @@ $.Viewer = function( options ) { width: this.navigatorWidth, height: this.navigatorHeight, autoResize: this.navigatorAutoResize, - preserveImageSizeOnResize: this.preserveImageSizeOnResize, prefixUrl: this.prefixUrl, viewer: this, navigatorRotate: this.navigatorRotate, @@ -2829,32 +2828,27 @@ function updateOnce( viewer ) { if ( viewer.autoResize ) { containerSize = _getSafeElemSize( viewer.container ); if ( !containerSize.equals( THIS[ viewer.hash ].prevContainerSize ) ) { - // maintain image position - var oldBounds = viewer.viewport.getBounds(); - var oldCenter = viewer.viewport.getCenter(); - resizeViewportAndRecenter(viewer, containerSize, oldBounds, oldCenter); - THIS[ viewer.hash ].prevContainerSize = containerSize; - THIS[ viewer.hash ].forceRedraw = true; - } - } - else if ( viewer.preserveImageSizeOnResize ) { - containerSize = _getSafeElemSize( viewer.container ); - if ( !containerSize.equals( THIS[ viewer.hash ].prevContainerSize ) ) { - var prevContainerSize = THIS[ viewer.hash ].prevContainerSize; - var bounds = viewer.viewport.getBounds(true); - var deltaX = (containerSize.x - prevContainerSize.x); - var deltaY = (containerSize.y - prevContainerSize.y); - var viewportDiff = viewer.viewport.deltaPointsFromPixels(new OpenSeadragon.Point(deltaX, deltaY), true); - viewer.viewport.resize(new OpenSeadragon.Point(containerSize.x, containerSize.y), false); - - // Keep the center of the image in the center and just adjust the amount of image shown - bounds.width += viewportDiff.x; - bounds.height += viewportDiff.y; - bounds.x -= (viewportDiff.x / 2); - bounds.y -= (viewportDiff.y / 2); - viewer.viewport.fitBoundsWithConstraints(bounds, true); - viewer.forceRedraw(); + if ( viewer.preserveImageSizeOnResize ) { + var prevContainerSize = THIS[ viewer.hash ].prevContainerSize; + var bounds = viewer.viewport.getBounds(true); + var deltaX = (containerSize.x - prevContainerSize.x); + var deltaY = (containerSize.y - prevContainerSize.y); + var viewportDiff = viewer.viewport.deltaPointsFromPixels(new OpenSeadragon.Point(deltaX, deltaY), true); + viewer.viewport.resize(new OpenSeadragon.Point(containerSize.x, containerSize.y), false); + // Keep the center of the image in the center and just adjust the amount of image shown + bounds.width += viewportDiff.x; + bounds.height += viewportDiff.y; + bounds.x -= (viewportDiff.x / 2); + bounds.y -= (viewportDiff.y / 2); + viewer.viewport.fitBoundsWithConstraints(bounds, true); + } + else { + // maintain image position + var oldBounds = viewer.viewport.getBounds(); + var oldCenter = viewer.viewport.getCenter(); + resizeViewportAndRecenter(viewer, containerSize, oldBounds, oldCenter); + } THIS[ viewer.hash ].prevContainerSize = containerSize; THIS[ viewer.hash ].forceRedraw = true; }