mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-14 19:27:01 -04:00
Fixes #11. Root cause: the grid and the filmstrip remembered the last active photo in egui temp data with mismatched types (inserted `Option<PhotoId>`, read back as `PhotoId` because of the `let last: Option<PhotoId> = get_temp(..)` annotation), so the read always missed, "the active photo changed" was true on every frame and both called `scroll_to_rect` on the active photo every frame. Any wheel or scroll-bar scroll was undone as soon as the user stopped (the animated scroll back read as a delayed snap). - `grid::follow_active` (shared by grid and filmstrip): scroll to the active photo only when it changed since the strip was last drawn, or when the strip was not drawn on the previous pass (view switch). Time passing, finished renders, edits and a released scroll bar no longer move either strip. - Filmstrip: a vertical mouse wheel scrolls it sideways (horizontal trackpad scrolling still works); it recentres on a new active photo only when that is off screen, so a click on a visible thumbnail leaves it alone. - `ui.inspect` reports `scroll: {grid, filmstrip}`; headless tests in `tests_scroll.rs`. - docs/parity.md (LR-VIEW-PHOTOGRID, LR-VIEW-FILMSTRIP), docs/control-protocol.md. Co-Authored-By: Claude Opus 5.5 <[email protected]>