From 9e07c96d29407f38108e9ee424bfc9eb37d5bec0 Mon Sep 17 00:00:00 2001 From: Younes El Alami Date: Fri, 9 Jan 2015 02:21:16 +0000 Subject: [PATCH] Added preserveOverlays option to Viewer --- src/openseadragon.js | 7 +++++++ src/viewer.js | 15 ++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/openseadragon.js b/src/openseadragon.js index f8b744de..e1a37e2f 100644 --- a/src/openseadragon.js +++ b/src/openseadragon.js @@ -519,6 +519,12 @@ * 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 the viewer has been configured with a sequence of tile sources, then + * normally navigating to through each image resets the overlays. + * If preserveOverlays is set to true, then the overlays + * are preserved when navigating between images in the sequence. + * * @property {Boolean} [showReferenceStrip=false] * If the viewer has been configured with a sequence of tile sources, then * display a scrolling strip of image thumbnails for navigating through the images. @@ -945,6 +951,7 @@ window.OpenSeadragon = window.OpenSeadragon || function( options ){ showSequenceControl: true, //SEQUENCE sequenceControlAnchor: null, //SEQUENCE preserveViewport: false, //SEQUENCE + preserveOverlays: false, //SEQUENCE navPrevNextWrap: false, //SEQUENCE showNavigationControl: true, //ZOOM/HOME/FULL/ROTATION navigationControlAnchor: null, //ZOOM/HOME/FULL/ROTATION diff --git a/src/viewer.js b/src/viewer.js index 39ed6294..32a18722 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -539,9 +539,13 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, this.navigator.close(); } - this.clearOverlays(); + if( ! this.preserveOverlays) + { + this.clearOverlays(); + this.overlaysContainer.innerHTML = ""; + } + this.drawersContainer.innerHTML = ""; - this.overlaysContainer.innerHTML = ""; if ( this.drawer ) { this.drawer.destroy(); @@ -1968,7 +1972,12 @@ function openTileSource( viewer, source ) { _this.viewport.resetContentSize( _this.source.dimensions ); } - _this.source.overlays = _this.source.overlays || []; + if( _this.preserveOverlays ){ + _this.source.overlays = _this.currentOverlays; + } + else{ + _this.source.overlays = _this.source.overlays || []; + } _this.drawer = new $.Drawer({ viewer: _this,