diff --git a/changelog.txt b/changelog.txt index 15f771c1..81d77fbf 100644 --- a/changelog.txt +++ b/changelog.txt @@ -35,6 +35,7 @@ OPENSEADRAGON CHANGELOG * Rect and Point now have clone functions * New Viewport method for managing homeBounds as well as constraints: setHomeBounds * Viewport.open supports positioning config properties + * For multi-image open, drawing isn't started until all tileSources have been opened * Margins option to push the home region in from the edges of the Viewer (#505) * Rect and Point toString() functions are now consistent: rounding values to nearest hundredth * Overlays appear in the DOM immediately on open or addOverlay (#507) @@ -49,6 +50,8 @@ OPENSEADRAGON CHANGELOG * Fixed an error in fitBounds that occurred sometimes with immediately = true * Added support for HDPI (retina) displays (#583) * Corrected IIIF tile source to use canonical syntax (#586) +* Fixed x/y typo that caused horizontal reference strip to be rendered only relative to height (#595) +* Fixed Firefox 35 not able to open local files (#588) 1.2.1: diff --git a/src/openseadragon.js b/src/openseadragon.js index 702d6976..f2110e8e 100644 --- a/src/openseadragon.js +++ b/src/openseadragon.js @@ -517,17 +517,19 @@ * If sequenceMode is true, display this page initially. * * @property {Boolean} [preserveViewport=false] - * If sequenceMode is true, then normally navigating to through each image resets the + * If sequenceMode is true, then normally navigating through each image resets the * viewport to 'home' position. If preserveViewport is set to true, then the viewport * position is preserved when navigating between images in the sequence. * * @property {Boolean} [preserveOverlays=false] - * If sequenceMode is true, then normally navigating to through each image + * If sequenceMode is true, then normally navigating through each image * resets the overlays. - * If preserveOverlays is set to true, then the overlays + * If preserveOverlays is set to true, then the overlays added with {@link OpenSeadragon.Viewer#addOverlay} * are preserved when navigating between images in the sequence. - * Note: setting preserveOverlays overrides any overlays specified in the - * "overlays" property. + * Note: setting preserveOverlays overrides any overlays specified in the global + * "overlays" option for the Viewer. It's also not compatible with specifying + * per-tileSource overlays via the options, as those overlays will persist + * even after the tileSource is closed. * * @property {Boolean} [showReferenceStrip=false] * If sequenceMode is true, then display a scrolling strip of image thumbnails for @@ -1984,9 +1986,12 @@ window.OpenSeadragon = window.OpenSeadragon || function( options ){ if ( request.readyState == 4 ) { request.onreadystatechange = function(){}; - var successStatus = - protocol === "http:" || protocol === "https:" ? 200 : 0; - if ( request.status === successStatus ) { + // With protocols other than http/https, the status is 200 + // on Firefox and 0 on other browsers + if ( request.status === 200 || + ( request.status === 0 && + protocol !== "http:" && + protocol !== "https:" )) { onSuccess( request ); } else { $.console.log( "AJAX request returned %d: %s", request.status, url ); diff --git a/src/referencestrip.js b/src/referencestrip.js index 97833e58..aef4e93e 100644 --- a/src/referencestrip.js +++ b/src/referencestrip.js @@ -224,7 +224,7 @@ $.ReferenceStrip = function ( options ) { this.panels.push( element ); } - loadPanels( this, this.scroll == 'vertical' ? viewerSize.y : viewerSize.y, 0 ); + loadPanels( this, this.scroll == 'vertical' ? viewerSize.y : viewerSize.x, 0 ); this.setFocus( 0 ); }; diff --git a/src/viewer.js b/src/viewer.js index 200055a2..507b2017 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -524,6 +524,8 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, return; } + this._opening = true; + var expected = tileSources.length; var successes = 0; var failures = 0; @@ -552,6 +554,7 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, } _this._drawOverlays(); + _this._opening = false; /** * Raised when the viewer has opened and loaded one or more TileSources. @@ -566,6 +569,8 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, // TODO: what if there are multiple sources? _this.raiseEvent( 'open', { source: source } ); } else { + _this._opening = false; + /** * Raised when an error occurs loading a TileSource. * @@ -655,12 +660,13 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, return this; } + this._opening = false; + if ( this.navigator ) { this.navigator.close(); } - if( ! this.preserveOverlays) - { + if( ! this.preserveOverlays) { this.clearOverlays(); this.overlaysContainer.innerHTML = ""; } @@ -705,6 +711,9 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, this.close(); + this.clearOverlays(); + this.overlaysContainer.innerHTML = ""; + //TODO: implement this... //this.unbindSequenceControls() //this.unbindStandardControls() @@ -2793,6 +2802,10 @@ function updateOnce( viewer ) { //viewer.profiler.beginUpdate(); + if (viewer._opening) { + return; + } + if ( viewer.autoResize ) { var containerSize = _getSafeElemSize( viewer.container ); if ( !containerSize.equals( THIS[ viewer.hash ].prevContainerSize ) ) { diff --git a/test/demo/m2/README.md b/test/demo/m2/README.md index 847f90c2..84028718 100644 --- a/test/demo/m2/README.md +++ b/test/demo/m2/README.md @@ -10,11 +10,10 @@ http://showcase.iiif.io/viewer/mirador/ ## To Do -* Choosing between multiple versions of a page -* Detail images overlaid on the page * Cropped images ### Maybe +* Alternates: wait until tiles have loaded before switching * Show/hide pages? * Lazyloading tilesources? diff --git a/test/demo/m2/index.html b/test/demo/m2/index.html index e86c9a39..70c4c486 100644 --- a/test/demo/m2/index.html +++ b/test/demo/m2/index.html @@ -6,6 +6,7 @@ +