diff --git a/app/assets/javascripts/ui_models/app_state/notes_state.ts b/app/assets/javascripts/ui_models/app_state/notes_state.ts index 858fc307e..19e5967e6 100644 --- a/app/assets/javascripts/ui_models/app_state/notes_state.ts +++ b/app/assets/javascripts/ui_models/app_state/notes_state.ts @@ -110,13 +110,14 @@ export class NotesState { } } - async selectNote(uuid: UuidString): Promise { + async selectNote(uuid: UuidString, userTriggered?: boolean): Promise { const note = this.application.findItem(uuid) as SNNote; if (note) { if ( - this.io.activeModifiers.has(KeyboardModifier.Meta) || - this.io.activeModifiers.has(KeyboardModifier.Ctrl) + userTriggered && + (this.io.activeModifiers.has(KeyboardModifier.Meta) || + this.io.activeModifiers.has(KeyboardModifier.Ctrl)) ) { if (this.selectedNotes[uuid]) { delete this.selectedNotes[uuid]; @@ -126,7 +127,10 @@ export class NotesState { this.lastSelectedNote = note; }); } - } else if (this.io.activeModifiers.has(KeyboardModifier.Shift)) { + } else if ( + userTriggered && + this.io.activeModifiers.has(KeyboardModifier.Shift) + ) { await this.selectNotesRange(note); } else { const shouldSelectNote = diff --git a/app/assets/javascripts/views/notes/notes-view.pug b/app/assets/javascripts/views/notes/notes-view.pug index 3bf428d6d..c30554557 100644 --- a/app/assets/javascripts/views/notes/notes-view.pug +++ b/app/assets/javascripts/views/notes/notes-view.pug @@ -130,7 +130,7 @@ ng-attr-id='note-{{note.uuid}}' ng-repeat='note in self.state.renderedNotes track by note.uuid' ng-class="{'selected' : self.isNoteSelected(note.uuid) }" - ng-click='self.selectNote(note)' + ng-click='self.selectNote(note, true)' ) .note-flags(ng-show='self.noteFlags[note.uuid].length > 0') .flag(ng-class='flag.class', ng-repeat='flag in self.noteFlags[note.uuid]') diff --git a/app/assets/javascripts/views/notes/notes_view.ts b/app/assets/javascripts/views/notes/notes_view.ts index 2b9e3d204..bee234060 100644 --- a/app/assets/javascripts/views/notes/notes_view.ts +++ b/app/assets/javascripts/views/notes/notes_view.ts @@ -307,7 +307,7 @@ class NotesViewCtrl extends PureViewCtrl { private async openNotesContextMenu(e: MouseEvent, note: SNNote) { e.preventDefault(); if (!this.state.selectedNotes[note.uuid]) { - await this.selectNote(note); + await this.selectNote(note, true); } if (this.state.selectedNotes[note.uuid]) { const { clientHeight } = document.documentElement; @@ -397,8 +397,8 @@ class NotesViewCtrl extends PureViewCtrl { } } - async selectNote(note: SNNote): Promise { - await this.appState.notes.selectNote(note.uuid); + async selectNote(note: SNNote, userTriggered?: boolean): Promise { + await this.appState.notes.selectNote(note.uuid, userTriggered); } async createNewNote() {