commit 3dcdd7f2ba843a3ec24501e0d14fc69dbcd3542e
parent 07efe0304ec110111581d771608d487b4824d1e3
Author: Dan Stillman <dstillman@zotero.org>
Date: Fri, 9 Mar 2018 15:15:18 -0500
Safer fix for external note focus issues
Follow-up to 96e96c0348 and 07efe0304e
Diffstat:
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/chrome/content/zotero/itemPane.js b/chrome/content/zotero/itemPane.js
@@ -25,7 +25,7 @@
var ZoteroItemPane = new function() {
var _lastItem, _itemBox, _notesLabel, _notesButton, _notesList, _tagsBox, _relatedBox;
- var _selectedNote;
+ var _selectedNoteID;
var _translationTarget;
var _noteIDs;
@@ -61,8 +61,6 @@ var ZoteroItemPane = new function() {
* Load a top-level item
*/
this.viewItem = Zotero.Promise.coroutine(function* (item, mode, index) {
- _selectedNote = null;
-
if (!index) {
index = 0;
}
@@ -226,7 +224,7 @@ var ZoteroItemPane = new function() {
this.onNoteSelected = function (item, editable) {
- _selectedNote = item;
+ _selectedNoteID = item.id;
// If an external note window is open for this item, don't show the editor
if (ZoteroPane.findNoteWindow(item.id)) {
@@ -263,19 +261,20 @@ var ZoteroItemPane = new function() {
* Select the parent item and open the note editor
*/
this.openNoteWindow = async function () {
- var noteID = _selectedNote.id;
+ var selectedNote = Zotero.Items.get(_selectedNoteID);
+
// We don't want to show the note in two places, since it causes unnecessary UI updates
// and can result in weird bugs where note content gets lost.
//
// If this is a child note, select the parent
- if (_selectedNote.parentID) {
- await ZoteroPane.selectItem(_selectedNote.parentID);
+ if (selectedNote.parentID) {
+ await ZoteroPane.selectItem(selectedNote.parentID);
}
// Otherwise, hide note and replace with a message that we're editing externally
else {
this.showNoteWindowMessage();
}
- ZoteroPane.openNoteWindow(noteID);
+ ZoteroPane.openNoteWindow(selectedNote.id);
};