Files
calendula/app
Jean-Luc Makiola ee23a91acb Fix drag-to-reschedule for events spanning midnight (#253) (#257)
Dragging an event that crosses midnight now works from either half.

- The tail of an overnight event can be picked up and dragged; the drop takes the clip offset back off, so the event lands where its own start belongs, and the second half can be dragged earlier as well as later.
- Timed blocks are cut square at midnight instead of being rounded off, and a month row draws an event crossing into the next week as one bar rather than two unrelated pills.
- Both halves are previewed while dragging, whichever one is held, and the floating copy carries the time range once.
- A moved chip is seated from its own bar's first column, a clipped-tail drop is confirmed against the slice the grid actually draws, and both halves stay ghosted until the write lands.
- The drop's arithmetic is wall clock throughout, so a DST transition between the event's start and the midnight its tail is cut at no longer shifts the write by an hour.
- A refused drop ticks `abandoned`, so a held copy is let go by one signal instead of by every call site.

Closes #253

Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de>
Reviewed-on: https://codeberg.org/jlmakiola/calendula/pulls/257
2026-09-01 11:43:54 +02:00
..