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 @@
+