From 7e39e460858561a62c4637e772c298dd3e24b675 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Wed, 21 Dec 2016 06:13:21 -0500 Subject: [PATCH] Focus note editor when pressing Tab is pressed on note in middle pane Closes #1136 --- chrome/content/zotero/xpcom/itemTreeView.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/chrome/content/zotero/xpcom/itemTreeView.js b/chrome/content/zotero/xpcom/itemTreeView.js index b7c35b126..312fc082a 100644 --- a/chrome/content/zotero/xpcom/itemTreeView.js +++ b/chrome/content/zotero/xpcom/itemTreeView.js @@ -128,6 +128,19 @@ Zotero.ItemTreeView.prototype.setTree = Zotero.Promise.coroutine(function* (tree return; } + // Focus note editor when Tab is pressed on a selected note + if (event.keyCode == event.DOM_VK_TAB) { + let items = this.getSelectedItems(); + if (items.length == 1 && items[0].isNote()) { + let noteEditor = this._ownerDocument.getElementById('zotero-note-editor'); + if (noteEditor) { + noteEditor.focus(); + event.preventDefault(); + } + } + return; + } + // Handle arrow keys specially on multiple selection, since // otherwise the tree just applies it to the last-selected row if (event.keyCode == 39 || event.keyCode == 37) { @@ -220,7 +233,7 @@ Zotero.ItemTreeView.prototype.setTree = Zotero.Promise.coroutine(function* (tree .catch(function (e) { Zotero.logError(e); }) - }; + }.bind(this); // Store listener so we can call removeEventListener() in ItemTreeView.unregister() this.listener = listener; tree.addEventListener('keypress', listener);