You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Defer List scrolls on macOS 12 until content settles to avoid offset corruption
macOS 12's SwiftUI List corrupts its scroll offset when
ScrollViewProxy.scrollTo runs while the list content is still settling,
which resurfaced after following a planet (the article list is
wholesale-replaced while FollowPlanetView and the selection restore both
request scrolls). Since many senders post scroll notifications, gate the
receivers instead of individual senders: a shared ListScrollSettleGate
runs scrolls immediately on macOS 13+ and on macOS 12 defers them until
the list content has been stable for a moment, keeping only the latest
request.
Wired into all three List-backed scroll sites: the article list
(articlesVersion), the sidebar (planet id changes), and search results
(result id changes, which previously scrolled on every keystroke's
result replacement). ScrollView-based views (AI chat, avatar picker)
are unaffected by the List bug and left unchanged.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments