From 932b826c4db1e90f016beb01ba82d04d1019e625 Mon Sep 17 00:00:00 2001 From: Luis Nieto Date: Mon, 5 Jul 2021 15:17:30 -0500 Subject: [PATCH] Flip the order in which view and navigator add a new item This change ensures that the added items are updated first in the navigator's world. If the viewer's world is updated first, it fires an add-item event, which in turn it may encounter a setItemIndex call; since the navigator's world does not have the item yet, an error occurs. --- src/viewer.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/viewer.js b/src/viewer.js index ad0668ed..ffbe0f4f 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -1502,6 +1502,17 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, if (_this.collectionMode) { _this.world.setAutoRefigureSizes(false); } + + if (_this.navigator) { + optionsClone = $.extend({}, queueItem.options, { + replace: false, // navigator already removed the layer, nothing to replace + originalTiledImage: tiledImage, + tileSource: queueItem.tileSource + }); + + _this.navigator.addTiledImage(optionsClone); + } + _this.world.addItem( tiledImage, { index: queueItem.options.index }); @@ -1515,16 +1526,6 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, _this.viewport.goHome(true); } - if (_this.navigator) { - optionsClone = $.extend({}, queueItem.options, { - replace: false, // navigator already removed the layer, nothing to replace - originalTiledImage: tiledImage, - tileSource: queueItem.tileSource - }); - - _this.navigator.addTiledImage(optionsClone); - } - if (queueItem.options.success) { queueItem.options.success({ item: tiledImage