commit fe1bedcb8d5486d6596ab70a2ae2440299a6c44c
parent af5e7abb31b68ffe0358eab1e9b35aafbeff940c
Author: Dan Stillman <dstillman@zotero.org>
Date: Mon, 24 Mar 2014 16:31:53 -0400
Fix hang navigating by keyboard in Add Citation after switching views
https://forums.zotero.org/discussion/35658/
Diffstat:
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git 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
@@ -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;
}