diff --git a/src/common/selection/Selection.ts b/src/common/selection/Selection.ts index d82f3fc47..ba4ed7751 100644 --- a/src/common/selection/Selection.ts +++ b/src/common/selection/Selection.ts @@ -53,14 +53,14 @@ export const regularizedSelection = ( tick: Math.max(0, Math.min(fromTick, toTick)), noteNumber: Math.min( MaxNoteNumber, - Math.max(0, Math.max(fromNoteNumber, toNoteNumber)), + Math.max(fromNoteNumber, toNoteNumber), ), }, to: { tick: Math.max(fromTick, toTick), noteNumber: Math.min( MaxNoteNumber, - Math.max(0, Math.min(fromNoteNumber, toNoteNumber)), + Math.min(fromNoteNumber, toNoteNumber), ), }, }) diff --git a/src/main/actions/selection.ts b/src/main/actions/selection.ts index c434d1f09..fca4e1a6f 100644 --- a/src/main/actions/selection.ts +++ b/src/main/actions/selection.ts @@ -42,7 +42,7 @@ function eventsInSelection(events: TrackEvent[], selection: Selection) { export const resizeSelection = ({ pianoRollStore }: RootStore) => (start: NotePoint, end: NotePoint) => { - const selection = regularizedSelection( + let selection = regularizedSelection( start.tick, start.noteNumber, end.tick, @@ -53,7 +53,11 @@ export const resizeSelection = selection.from.noteNumber = Math.ceil(selection.from.noteNumber) selection.to.noteNumber = Math.floor(selection.to.noteNumber) - pianoRollStore.selection = clampSelection(selection) + ++selection.to.noteNumber; + selection = clampSelection(selection); + --selection.to.noteNumber; + + pianoRollStore.selection = selection; } export const fixSelection =