From 7df3dafb9e4e886896f1da9828aebc08067a3e54 Mon Sep 17 00:00:00 2001 From: abaevbog Date: Mon, 10 Nov 2025 10:59:24 -0800 Subject: [PATCH] fix createParent dialog stuck during quicksearch (#5596) Fix createParentDialog hanging when opened during quicksearch or in saved search. After a parent item is added, itemTree is being refreshed. If _refreshPromise is resolved after a timeout, it will not complete until the modal dialog is closed. Instead, resolve _refreshPromise after Zotero.Promise.delay, which uses the XPCOM global timer unaffected by modals. Fixes: #3026 --- chrome/content/zotero/itemTree.jsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/chrome/content/zotero/itemTree.jsx b/chrome/content/zotero/itemTree.jsx index 917576f4ef..657e9f4354 100644 --- a/chrome/content/zotero/itemTree.jsx +++ b/chrome/content/zotero/itemTree.jsx @@ -375,14 +375,12 @@ var ItemTree = class ItemTree extends LibraryTree { await this.runListeners('refresh'); - setTimeout(function () { - resolve(); - }); + await Zotero.Promise.delay(); + resolve(); } catch (e) { - setTimeout(function () { - reject(e); - }); + await Zotero.Promise.delay(); + reject(e); throw e; } })