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.
This commit is contained in:
Luis Nieto 2021-07-05 15:17:30 -05:00
parent 577622a210
commit 932b826c4d

View File

@ -1502,6 +1502,17 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
if (_this.collectionMode) { if (_this.collectionMode) {
_this.world.setAutoRefigureSizes(false); _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, { _this.world.addItem( tiledImage, {
index: queueItem.options.index index: queueItem.options.index
}); });
@ -1515,16 +1526,6 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
_this.viewport.goHome(true); _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) { if (queueItem.options.success) {
queueItem.options.success({ queueItem.options.success({
item: tiledImage item: tiledImage