diff --git a/chrome/content/zotero/xpcom/itemTreeView.js b/chrome/content/zotero/xpcom/itemTreeView.js index 3aac626a4..bcedfb037 100644 --- a/chrome/content/zotero/xpcom/itemTreeView.js +++ b/chrome/content/zotero/xpcom/itemTreeView.js @@ -257,8 +257,7 @@ Zotero.ItemTreeView.prototype._setTreeGenerator = function(treebox) }) .done(); }; - // Store listener so we can call removeEventListener() - // in overlay.js::onCollectionSelected() + // Store listener so we can call removeEventListener() in ItemTreeView.unregister() this.listener = listener; tree.addEventListener('keypress', listener); @@ -911,6 +910,11 @@ Zotero.ItemTreeView.prototype.notify = function(action, type, ids, extraData) Zotero.ItemTreeView.prototype.unregister = function() { Zotero.Notifier.unregisterObserver(this._unregisterID); + if (this.listener) { + let tree = this._treebox.treeBody.parentNode; + tree.removeEventListener('keypress', this.listener, false); + this.listener = null; + } } //////////////////////////////////////////////////////////////////////////////// diff --git a/chrome/content/zotero/zoteroPane.js b/chrome/content/zotero/zoteroPane.js index 52802cd60..b30173348 100644 --- a/chrome/content/zotero/zoteroPane.js +++ b/chrome/content/zotero/zoteroPane.js @@ -1107,12 +1107,6 @@ var ZoteroPane = new function() if (this.itemsView) { this.itemsView.unregister(); - if (this.itemsView.wrappedJSObject.listener) { - document.getElementById('zotero-items-tree').removeEventListener( - 'keypress', this.itemsView.wrappedJSObject.listener, false - ); - } - this.itemsView.wrappedJSObject.listener = null; document.getElementById('zotero-items-tree').view = this.itemsView = null; }