docs: SCROLL.md, the standing reference for how iris scrolls
For the next session, since this one is about to be cleared. Current design only -- `Scroll` owns the position, the gesture and the fling; a child is either moved or answers `Widget::scrolls_itself` and is handed deltas; one sign convention, the finger's. It carries the things that are expensive to rediscover and easy to undo by accident: why the two `&self` capability methods must not be `&mut` (`get_dyn_mut` marks dirty), why `scroll_offset` exists beside `apply_scroll`'s remainder, why the measuring draw is free, why nothing is marked by hand, why the height cache stays in the container, why the transcript builds its `Scroll` by hand instead of through `.scrollable_to_end()`, and the measured numbers behind "a `LazySpan` is not a `Span`". Also names the one thing still open -- the pin -- with the two ways to close it and an instruction to ask Iris rather than guess. `scroll.rs` and `lazy_span.rs` now point at it from their module docs rather than restating it, AGENTS.md lists it beside the other design documents, and IRIS_TODO.md's in-progress entry defers to it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b7474f61b0
commit
00e0a63887
5 files changed
+317
No files matched your search
@@ -76,6 +76,11 @@ Module-by-module intent is in `docs/PLAN.md`'s "Backend layout".
|
||||
public API** -- Iris, 2026-09-08), working list, decisions log,
|
||||
layout/render design, and texture-atlas design, and the client-core
|
||||
crate's design, respectively.
|
||||
- `docs/SCROLL.md` — how anything in iris scrolls: `Scroll` owns the
|
||||
position, the gesture and the fling; a child either gets moved or
|
||||
answers `Widget::scrolls_itself` and is handed deltas. Read it before
|
||||
touching `scroll.rs`, `lazy_span.rs`, or anything that pans, flings
|
||||
or lays out a long list.
|
||||
- `.dev-updater.ron` — what Dev Updater builds here: the server (run as
|
||||
`service: Managed(…)`, supervised by Dev Updater's own implementation
|
||||
rather than a script kept here) and the APK, in parallel. It points at
|
||||
|
||||
Reference in new issue
Block a user