mirror of
https://github.com/openseadragon/openseadragon.git
synced 2025-01-20 09:41:45 +03:00
Revert "Fix timer leak after multiple Viewer.open() calls"
This should be done with cancelAnimationFrame() instead. This reverts commit 47aba609403d090b04b144b1e0097e0ea969f7a8.
This commit is contained in:
parent
47aba60940
commit
23c20e3d5a
@ -115,7 +115,6 @@ $.Viewer = function( options ) {
|
|||||||
THIS[ this.hash ] = {
|
THIS[ this.hash ] = {
|
||||||
"fsBoundsDelta": new $.Point( 1, 1 ),
|
"fsBoundsDelta": new $.Point( 1, 1 ),
|
||||||
"prevContainerSize": null,
|
"prevContainerSize": null,
|
||||||
"closeCount": 0,
|
|
||||||
"animating": false,
|
"animating": false,
|
||||||
"forceRedraw": false,
|
"forceRedraw": false,
|
||||||
"mouseInside": false,
|
"mouseInside": false,
|
||||||
@ -369,8 +368,6 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
|||||||
VIEWERS[ this.hash ] = null;
|
VIEWERS[ this.hash ] = null;
|
||||||
delete VIEWERS[ this.hash ];
|
delete VIEWERS[ this.hash ];
|
||||||
|
|
||||||
THIS[ this.hash ].closeCount++;
|
|
||||||
|
|
||||||
this.raiseEvent( 'close', { viewer: this } );
|
this.raiseEvent( 'close', { viewer: this } );
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
@ -951,7 +948,6 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
|||||||
function openTileSource( viewer, source ) {
|
function openTileSource( viewer, source ) {
|
||||||
var _this = viewer,
|
var _this = viewer,
|
||||||
overlay,
|
overlay,
|
||||||
closeCount,
|
|
||||||
i;
|
i;
|
||||||
|
|
||||||
if ( _this.source ) {
|
if ( _this.source ) {
|
||||||
@ -1068,12 +1064,7 @@ function openTileSource( viewer, source ) {
|
|||||||
|
|
||||||
THIS[ _this.hash ].animating = false;
|
THIS[ _this.hash ].animating = false;
|
||||||
THIS[ _this.hash ].forceRedraw = true;
|
THIS[ _this.hash ].forceRedraw = true;
|
||||||
|
scheduleUpdate( _this, updateMulti );
|
||||||
// Use local copy in closure
|
|
||||||
closeCount = THIS[ _this.hash ].closeCount;
|
|
||||||
scheduleUpdate( _this, function(){
|
|
||||||
updateMulti( _this, closeCount );
|
|
||||||
} );
|
|
||||||
|
|
||||||
//Assuming you had programatically created a bunch of overlays
|
//Assuming you had programatically created a bunch of overlays
|
||||||
//and added them via configuration
|
//and added them via configuration
|
||||||
@ -1130,7 +1121,9 @@ function scheduleUpdate( viewer, updateFunc, prevUpdateTime ){
|
|||||||
deltaTime;
|
deltaTime;
|
||||||
|
|
||||||
if ( THIS[ viewer.hash ].animating ) {
|
if ( THIS[ viewer.hash ].animating ) {
|
||||||
return $.requestAnimationFrame( updateFunc );
|
return $.requestAnimationFrame( function(){
|
||||||
|
updateFunc( viewer );
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
currentTime = +new Date();
|
currentTime = +new Date();
|
||||||
@ -1139,7 +1132,9 @@ function scheduleUpdate( viewer, updateFunc, prevUpdateTime ){
|
|||||||
targetTime = prevUpdateTime + 1000 / 60;
|
targetTime = prevUpdateTime + 1000 / 60;
|
||||||
deltaTime = Math.max( 1, targetTime - currentTime );
|
deltaTime = Math.max( 1, targetTime - currentTime );
|
||||||
|
|
||||||
return $.requestAnimationFrame( updateFunc );
|
return $.requestAnimationFrame( function(){
|
||||||
|
updateFunc( viewer );
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1339,19 +1334,17 @@ function onContainerEnter( tracker, position, buttonDownElement, buttonDownAny )
|
|||||||
// Page update routines ( aka Views - for future reference )
|
// Page update routines ( aka Views - for future reference )
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
function updateMulti( viewer, closeCount ) {
|
function updateMulti( viewer ) {
|
||||||
|
|
||||||
var beginTime;
|
var beginTime;
|
||||||
|
|
||||||
if ( closeCount !== THIS[ viewer.hash ].closeCount ) {
|
if ( !viewer.source ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
beginTime = +new Date();
|
beginTime = +new Date();
|
||||||
updateOnce( viewer );
|
updateOnce( viewer );
|
||||||
scheduleUpdate( viewer, function(){
|
scheduleUpdate( viewer, arguments.callee, beginTime );
|
||||||
updateMulti( viewer, closeCount );
|
|
||||||
}, beginTime );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateOnce( viewer ) {
|
function updateOnce( viewer ) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user