Dragging the left edge of a song item to the right snapped to the grid
and to the points where the item's content starts again. One of those
points lies exactly on the item's end. When the edge caught it, the
item shrank to a single tick and showed as a thin white line. The
right edge already refused to snap back on to its own start, the left
edge had no such rule.
- trimDelta: a snapped start on or past the item's end now takes the
last grid line before the end instead.
- If that grid line lies before the current start, the start stays
where it is.
- Free trimming with Alt or Shift is unchanged and may still shrink
the item to one tick.
- Dragging the left edge far past the end now leaves one grid step,
as the right edge already did, instead of one tick.
Tests:
- song-edit unit tests: 14 green (2 new expectations, 1 changed)
- Counter-check with the rule removed: 2 red (1399 instead of 960,
1919 instead of 1800)
- Prettier, ESLint, tsc clean
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>