gpui: Add synced repeating animations and phase-lock spinners (#62332)
Spinners rendered near each other (like a sidebar full of running threads) each start rotating from the moment their element first renders, so they spin out of phase and the group looks jittery. This adds `Animation::repeat_synced()`, which derives the phase from a clock shared by the whole app instead of the element's mount time, and switches `with_rotate_animation` over to it, so every spinner with the same period now renders the same frame at the same time. The epoch is read off the scheduler clock at app creation, so the phase stays deterministic under the test scheduler. Release Notes: - Improved loading spinners to rotate in phase with one another
A
Agus Zubiaga committed
4ed3738c4068495e12d4d78044b005e5ed9d3b8c
Parent: 417d033
Committed by GitHub <noreply@github.com>
on 8/7/2026, 9:14:36 PM