diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-12 06:21:40 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-12 06:21:40 +0000 |
| commit | 84252756c687044d73a0ea5cebf8088c7c9ed3e8 (patch) | |
| tree | 0f76a627ee9fb4037d83a57270a3426694b69c2f /internal/store/sqlite.go | |
| parent | a43cc7b8f007a86742756bd4b67f9ba1c204bbd0 (diff) | |
fix(widget): pin all-day calendar events to the top instead of losing them
WidgetItem.isAllDay was carried by the client's data model but nothing
ever read it. All-day events had no Start at all, so they fell into the
same floating-task queue as ordinary untimed tasks; if enough tasks were
ahead of one in the queue, SlotPacker could assign it an hour slot past
the visible grid range entirely -- not merely unpinned, actually
invisible.
Server: TimelineItemToWidgetItem now populates Start for all-day
CALENDAR EVENTS specifically (their real event date), while leaving
undated doot/gtask tasks -- also flagged IsAllDay as a "no specific
time" fallback, a different concept -- on the existing nil-Start
floating behavior.
Client: all-day events are filtered out of the hourly grid/floating-task
pipeline entirely, bucketed by day using the new Start date, and
rendered in a new pinned AllDayRow section right after the TODAY/TOMORROW
headers.
Diffstat (limited to 'internal/store/sqlite.go')
0 files changed, 0 insertions, 0 deletions
