Skip to content

Fix/fix calender manager events - #640

Draft
underdog-org wants to merge 1046 commits into
Ebullioscopic:devfrom
underdog-org:fix/fix-CalenderManager-events
Draft

Fix/fix calender manager events#640
underdog-org wants to merge 1046 commits into
Ebullioscopic:devfrom
underdog-org:fix/fix-CalenderManager-events

Conversation

@underdog-org

Copy link
Copy Markdown

Summary

Fixes #156 — all-day events do not appear in the notch calendar until the user scrolls up, and re-hide when the day is revisited.

Root cause

Events are sorted by start time, so all-day events (whose start is midnight) always sort to the top of the list. EventListView.scrollToRelevantEvent selected the next timed event as its target and pinned it to the top of the viewport (anchor: .top). That pushed the all-day events above the visible area, so they were only reachable by scrolling up. Because the scroll runs on .onAppear and .onChange(of: filteredEvents), they re-hid every time the day was revisited.

Fix

Prefer the first all-day event as the scroll anchor when one exists, so it stays visible with upcoming timed events just below:

- guard let target = nonAllDayUpcoming ?? firstAllDay ?? lastEvent else { return }
+ guard let target = firstAllDay ?? nonAllDayUpcoming ?? lastEvent else { return }

When there are no all-day events, firstAllDay is nil and the logic falls through to the next timed event exactly as before — so days without all-day events are unaffected.

Testing

  • With an all-day event and later timed events on the same day: the all-day event is now visible at the top immediately, and stays visible after closing/reopening the calendar or switching days and returning.
  • Days with only timed events: unchanged (still auto-scrolls to the next upcoming event).
  • Requires hideAllDayEvents to be off (otherwise all-day events are hidden by design).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Updated the calendar event list’s initial scroll position to prioritize all-day events when both all-day and upcoming timed events are available.

StellarSea and others added 30 commits April 10, 2026 10:51
…rd-request/gestures

Feature/discord request/gestures
Agent-Logs-Url: https://github.com/AkhilKonduru1/Atoll/sessions/d40c666d-f589-48ca-9539-1fd33c799962

Co-authored-by: AkhilKonduru1 <210101196+AkhilKonduru1@users.noreply.github.com>
Agent-Logs-Url: https://github.com/AkhilKonduru1/Atoll/sessions/d40c666d-f589-48ca-9539-1fd33c799962

Co-authored-by: AkhilKonduru1 <210101196+AkhilKonduru1@users.noreply.github.com>
…q-api-ai-provider-option

Add Groq as a first-class Screen Assistant provider with dedicated UI placement and model selection
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…rtcut_fix

Fix terminal keyboard open + sticky outside-click
StudioKeys and others added 29 commits July 4, 2026 23:34
Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
…e-monitor

Atoll: Add OpenRouter to credits as well
Change `LocalizedName` to `localizedName` in SneakPeekStyle enum to maintain consistency with other enums in the codebase.
Change '标尺' to '标尺式' to better clarify this is an input style option for the timer.
- Localize sidebar tab titles using LocalizedStringKey
- Add localizedName property to LockScreenWeatherTemperatureUnit enum
- Switch weather widget style, temperature unit, and reminder chip color pickers from rawValue to localizedName
- Ensure consistent localization across all settings UI elements
…verflow

fix: timer hour-format overflow and left gap in Live Activity
…alization

fix: restore and improve Simplified Chinese localization
enableSystemHUD() restores OSDUIHelper on a detached background Task, which
never completes when the app is already terminating. If Atoll was suppressing
the native OSD, OSDUIHelper is left SIGSTOP-frozen after quit, breaking every
native OSD Atoll does not replace (keyboard backlight, external-display
brightness) and leaving a stuck HUD on screen.

Add resumeOSDUIHelperForTermination(), which stops the suppression watcher and
sends SIGCONT inline (blocking until it lands), and call it from
applicationWillTerminate so the helper is always resumed before Atoll exits.

Fixes Ebullioscopic#568
- Fixes refresh button in light theme going invisible

Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
- Fixes light theme invisibility issues for Battery expanded menu on notch
- Also fixes the notes search going white and LLM Usage showing black text on light mode switch
- Forced dark mode for LLM Usages to ensure readability

Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
Signed-off-by: Jis G Jacob <studiokeys@blissroms.org>
stopSuppressionWatcher() only cancels the watcher task cooperatively, so an
in-flight suspendOSDUIHelper() could land its SIGSTOP after the termination
SIGCONT and re-freeze OSDUIHelper. Return the cancelled task and, on the
termination path, wait (bounded) for it to fully exit before sending SIGCONT.
…refresh

Atoll: Fix Readability Issues in Light Mode
…ng-race

fix: update track metadata before lyrics lookup
…e-on-quit

fix: resume OSDUIHelper synchronously on quit
…#156)

All-day events sort to the top of the event list because their start time
is midnight. The auto-scroll in EventListView.scrollToRelevantEvent picked
the next *timed* event and pinned it to the top of the viewport, which
pushed the all-day events above the visible area — so they only appeared
after the user scrolled up, and re-hid on revisit via onChange.

Prefer the first all-day event as the scroll anchor when one exists, so it
stays visible with upcoming timed events just below. When there are no
all-day events the behavior is unchanged (falls through to the next timed
event), so days without all-day events are unaffected.

Fixes Ebullioscopic#156

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 774c07c6-a418-428a-b880-c5f55e47d6af

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

All-day event bug