Focus correct note window when multiple note windows are open

Probably broken by dcfaa5521e
This commit is contained in:
Dan Stillman 2018-03-09 14:24:26 -05:00
parent 6745ea9868
commit 96e96c0348

View File

@ -25,6 +25,7 @@
var ZoteroItemPane = new function() { var ZoteroItemPane = new function() {
var _lastItem, _itemBox, _notesLabel, _notesButton, _notesList, _tagsBox, _relatedBox; var _lastItem, _itemBox, _notesLabel, _notesButton, _notesList, _tagsBox, _relatedBox;
var _selectedNote;
var _translationTarget; var _translationTarget;
var _noteIDs; var _noteIDs;
@ -60,6 +61,8 @@ var ZoteroItemPane = new function() {
* Load a top-level item * Load a top-level item
*/ */
this.viewItem = Zotero.Promise.coroutine(function* (item, mode, index) { this.viewItem = Zotero.Promise.coroutine(function* (item, mode, index) {
_selectedNote = null;
if (!index) { if (!index) {
index = 0; index = 0;
} }
@ -223,6 +226,8 @@ var ZoteroItemPane = new function() {
this.onNoteSelected = function (item, editable) { this.onNoteSelected = function (item, editable) {
_selectedNote = item;
// If an external note window is open for this item, don't show the editor // If an external note window is open for this item, don't show the editor
if (ZoteroPane.findNoteWindow(item.id)) { if (ZoteroPane.findNoteWindow(item.id)) {
this.showNoteWindowMessage(); this.showNoteWindowMessage();
@ -258,20 +263,18 @@ var ZoteroItemPane = new function() {
* Select the parent item and open the note editor * Select the parent item and open the note editor
*/ */
this.openNoteWindow = async function () { this.openNoteWindow = async function () {
var noteEditor = document.getElementById('zotero-note-editor');
var item = noteEditor.item;
// We don't want to show the note in two places, since it causes unnecessary UI updates // 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. // and can result in weird bugs where note content gets lost.
// //
// If this is a child note, select the parent // If this is a child note, select the parent
if (item.parentID) { if (_selectedNote.parentID) {
await ZoteroPane.selectItem(item.parentID); await ZoteroPane.selectItem(_selectedNote.parentID);
} }
// Otherwise, hide note and replace with a message that we're editing externally // Otherwise, hide note and replace with a message that we're editing externally
else { else {
this.showNoteWindowMessage(); this.showNoteWindowMessage();
} }
ZoteroPane.openNoteWindow(item.id); ZoteroPane.openNoteWindow(_selectedNote.id);
}; };