lightcraft/docs
Brandon Thomas 103f53724f LR-FILMSTRIP: grid and filmstrip keep the user's scroll position; wheel scrolls the filmstrip
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 <noreply@anthropic.com>
2026-10-04 02:56:32 -04:00
..
brand logo and readme 2026-10-01 14:52:19 -04:00
images docs: README (MCP, CLI, export, status, contributing), AGENTS.md (asset enforcement, crash recovery, testing/perf), screenshots re-captured with Inter 2026-09-30 23:52:34 -04:00
showcase M1.4: crash-safe catalog persistence (op log + snapshot) 2026-09-30 23:40:40 -04:00
control-protocol.md LR-FILMSTRIP: grid and filmstrip keep the user's scroll position; wheel scrolls the filmstrip 2026-10-04 02:56:32 -04:00
gpu-pipeline.md M5.6c: one memory budget for caches, decode gate and GPU pool; peak RSS 1.9-2.3 GB -> 0.83-0.99 GB 2026-10-01 11:35:08 -04:00
mcp.md docs/mcp: quote bracketed run values for the shell 2026-10-02 16:46:05 -04:00
merge.md Merge main (Photo Merge); M1.14b: stack merge results with their sources 2026-10-01 11:00:51 -04:00
parity.md LR-FILMSTRIP: grid and filmstrip keep the user's scroll position; wheel scrolls the filmstrip 2026-10-04 02:56:32 -04:00
web.md M0.14: web bundle size — fat LTO, size-optimized glue, precompressed output 2026-10-01 09:02:15 -04:00
whats-new.md LR-BEHAV-WHATSNEW + MENU-HELP-FEEDBACK: Help ▸ What's New, Send Feedback 2026-10-02 23:50:56 -04:00
xmp-interop.md LR-PROF-IMPORT: .cube 3D LUTs as creative profiles 2026-10-03 02:20:39 -04:00