diff --git a/chrome/content/zotero/itemTree.jsx b/chrome/content/zotero/itemTree.jsx index e235888ec8..251580884b 100644 --- a/chrome/content/zotero/itemTree.jsx +++ b/chrome/content/zotero/itemTree.jsx @@ -318,7 +318,8 @@ var ItemTree = class ItemTree extends LibraryTree { return this._itemTreeLoadingDeferred.promise; } - async setItemsPaneMessage(message) { + async setItemsPaneMessage(message, lock=false) { + if (this._locked) return; if (typeof message == 'string') { let messageParts = message.split("\n\n"); message = messageParts.map(part => `
${part}
`).join(''); @@ -328,6 +329,7 @@ var ItemTree = class ItemTree extends LibraryTree { } const shouldRerender = this._itemsPaneMessage != message; this._itemsPaneMessage = message; + this._locked = lock; return shouldRerender && new Promise(resolve => this.forceUpdate(resolve)); } @@ -1159,6 +1161,7 @@ var ItemTree = class ItemTree extends LibraryTree { } async changeCollectionTreeRow(collectionTreeRow) { + if (this._locked) return; Zotero.debug(`itemTree.changeCollectionTreeRow(): ${collectionTreeRow.id}`); this.selection.selectEventsSuppressed = true; this.collectionTreeRow = collectionTreeRow; @@ -1627,6 +1630,7 @@ var ItemTree = class ItemTree extends LibraryTree { } async setFilter(type, data) { + if (this._locked) return; switch (type) { case 'search': this.collectionTreeRow.setSearch(data); @@ -1637,7 +1641,7 @@ var ItemTree = class ItemTree extends LibraryTree { default: throw ('Invalid filter type in setFilter'); } - await this.refreshAndMaintainSelection() + await this.refreshAndMaintainSelection(); }; ensureRowsAreVisible(indices) { diff --git a/chrome/content/zotero/zoteroPane.js b/chrome/content/zotero/zoteroPane.js index 8e58d25c3d..c57a5a7aaf 100644 --- a/chrome/content/zotero/zoteroPane.js +++ b/chrome/content/zotero/zoteroPane.js @@ -3066,7 +3066,7 @@ var ZoteroPane = new function() } if (this.itemsView) { - this.itemsView.setItemsPaneMessage(content); + this.itemsView.setItemsPaneMessage(content, lock); } }