Record #16, the position chain, and why the hint shortcut is not the fix
This commit is contained in:
1 parent
e04f873453
commit
0f24d3ac23
1 file changed
+21
-1
@@ -6,7 +6,12 @@ Not a decisions log; delete it when the extraction is done.
|
|||||||
## Where things stand
|
## Where things stand
|
||||||
|
|
||||||
Canonical `main` is **`43ce8c7`** (#12, pointer routing). Fourteen slices are
|
Canonical `main` is **`43ce8c7`** (#12, pointer routing). Fourteen slices are
|
||||||
in and nothing is open.
|
in.
|
||||||
|
|
||||||
|
- **#16** `split/16-draw-size`, worktree `/home/bob/repos/iris-pr16`, head
|
||||||
|
`f192f75`. A widget sizes itself while drawing; `SizeCtx`, the `desired_*`
|
||||||
|
methods and the size cache are gone, and `size_dependence(axis)` drives the
|
||||||
|
retained path. `tabs`, `view` and `minimal` render byte-identical to `main`.
|
||||||
|
|
||||||
Check for a review before starting anything, and read the newest
|
Check for a review before starting anything, and read the newest
|
||||||
`submitted_at` rather than the first result:
|
`submitted_at` rather than the first result:
|
||||||
@@ -102,6 +107,21 @@ today's `Len` and let the dp slice follow, rather than pulling both in at once.
|
|||||||
|
|
||||||
Still in the target, roughly in dependency order:
|
Still in the target, roughly in dependency order:
|
||||||
|
|
||||||
|
- **The position chain** (LAYOUT.md §2): `UiData::move_offsets`, per-primitive
|
||||||
|
slot ids and a bounded chain walk in WGSL, so moving a subtree writes one
|
||||||
|
slot instead of every descendant's primitives. Agreed to come directly after
|
||||||
|
#16.
|
||||||
|
- **Built-in alignment, and possibly size**, directly after the position
|
||||||
|
chain. A child of a span is handed the full extent on the ortho axis, so
|
||||||
|
`.width(rel(0.5))` inside a `Dir::DOWN` span changes what the child reports
|
||||||
|
and not the box it gets. **Do not "fix" this by reading the child's ortho
|
||||||
|
`size_hint`**: a `Pad` between the `SetSize` and the span has no hint of its
|
||||||
|
own, so the declared width silently goes back to filling. It works only when
|
||||||
|
nothing is in the way, which is the shape of bug the review pass is for.
|
||||||
|
Alignment has to belong to the widget rather than be discovered through
|
||||||
|
whatever happens to sit on top of it. Size is the harder half: a declared
|
||||||
|
size beside `set_size` is two sources of truth for one thing, so settle what
|
||||||
|
each means before building it.
|
||||||
- **`Len`, `LayoutLen` and dp.** The archive splits the type so that `rest` is
|
- **`Len`, `LayoutLen` and dp.** The archive splits the type so that `rest` is
|
||||||
unrepresentable where it is meaningless (a padding), and folds a density in
|
unrepresentable where it is meaningless (a padding), and folds a density in
|
||||||
at resolve time. 21 files mention `Len`, so it is wide but shallow. After the
|
at resolve time. 21 files mention `Len`, so it is wide but shallow. After the
|
||||||
|
|||||||
Reference in new issue
Block a user