mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-10 15:11:58 +01:00
A drop captured the dragged row's queue position once, at drag start, and committed on a fire-and-forget coroutine. If the queue renumbered while the drag was in flight (up-next consumed, a reconcile) or before a prior move had reconciled, the drop resolved its target against stale coordinates and moved the wrong entry - the "two middle rows swap on release" symptom. Resolve the move from the current rows at drop time, and have move() report whether it was accepted so a refused reorder is not announced as done; a further move is refused while one is still committing.