From 36c98e919aa5d4bd7da0d4bbdb4d048ea12f53c8 Mon Sep 17 00:00:00 2001 From: zadam Date: Thu, 1 Dec 2022 22:50:53 +0100 Subject: [PATCH] fix cursor jumping problem when having same note open in two tabs, closes #3365 --- src/public/app/widgets/note_detail.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/public/app/widgets/note_detail.js b/src/public/app/widgets/note_detail.js index 7a6fff9ea..f7b124827 100644 --- a/src/public/app/widgets/note_detail.js +++ b/src/public/app/widgets/note_detail.js @@ -283,11 +283,15 @@ export default class NoteDetailWidget extends NoteContextAwareWidget { // probably incorrect event // calling this.refresh() is not enough since the event needs to be propagated to children as well // FIXME: create a separate event to force hierarchical refresh - this.triggerEvent('noteTypeMimeChanged', {noteId: this.noteId}); + + // this uses handleEvent to make sure that the ordinary content updates are propagated only in the subtree + // to avoid problem in #3365 + this.handleEvent('noteTypeMimeChanged', {noteId: this.noteId}); } else if (loadResults.isNoteReloaded(this.noteId, this.componentId) && (this.type !== await this.getWidgetType() || this.mime !== this.note.mime)) { + // this needs to have a triggerEvent so that e.g. note type (not in the component subtree) is updated this.triggerEvent('noteTypeMimeChanged', {noteId: this.noteId}); } else { @@ -304,6 +308,8 @@ export default class NoteDetailWidget extends NoteContextAwareWidget { && attributeService.isAffecting(attr, this.note)); if (label || relation) { + console.log("OOOO"); + // probably incorrect event // calling this.refresh() is not enough since the event needs to be propagated to children as well this.triggerEvent('noteTypeMimeChanged', {noteId: this.noteId});