Record all three merged, and what comes next
This commit is contained in:
1 parent
9c85ea4864
commit
e04f873453
1 file changed
+34
-26
@@ -5,21 +5,8 @@ Not a decisions log; delete it when the extraction is done.
|
|||||||
|
|
||||||
## Where things stand
|
## Where things stand
|
||||||
|
|
||||||
Canonical `main` is **`32b1038`** (#14, SetSize). Twelve slices are in. One
|
Canonical `main` is **`43ce8c7`** (#12, pointer routing). Fourteen slices are
|
||||||
pull request is open and one branch is pushed but unopened:
|
in and nothing is open.
|
||||||
|
|
||||||
- **#12** `split/12-pointer-routing`, worktree `/home/bob/repos/iris-pr12`,
|
|
||||||
head `e53ce58`. Reworked twice after review: a layer, not a widget, is what
|
|
||||||
consumes input. `CursorSenses::consumes` decides only whether a layer stops
|
|
||||||
the input reaching the one below, and senses on one layer never block each
|
|
||||||
other. The vocabulary is `position_only`, not "momentary". Five tests; two
|
|
||||||
fail on `main`. **One question is out to her**: whether to replace
|
|
||||||
`registered` with a `consumed: &Cell<bool>` on `CursorData` that
|
|
||||||
`should_run` sets, which also removes the double match.
|
|
||||||
- **#15** `split/15-harness`, worktree `/home/bob/repos/iris-pr15`. `Tasks`
|
|
||||||
takes an `Arc<dyn WakeTaskQueue>` instead of an `Arc<Window>`, so
|
|
||||||
`DefaultRsc` builds without one, and `iris::harness` drives a ui with no
|
|
||||||
surface. Six tests in `tests/harness.rs`. Disjoint from #12.
|
|
||||||
|
|
||||||
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:
|
||||||
@@ -94,23 +81,42 @@ Other standing instructions from the owner:
|
|||||||
|
|
||||||
## The next slice
|
## The next slice
|
||||||
|
|
||||||
**The headless rig.** `scripts/run-headless.sh`, `headless.conf` and
|
**Widget draw size and measurement** (source commit `6671194`), because it
|
||||||
`rig-input` are still only in ai-app's iris submodule, so every rendering
|
reaches furthest: `desired_width`/`desired_height` and `SizeCtx` go, a widget
|
||||||
claim in canonical Iris is verified by hand from another checkout. The harness
|
sizes itself during `draw` with `painter.set_size`, and `size_hint` is the
|
||||||
half of this is done in `split/15-harness`; the rig is shell and a Wayland
|
cheap answer for a parent that needs a size without drawing. Every widget's
|
||||||
replay binary and transplants nearly as-is, minus the `--phone` and `--dir`
|
body changes, so anything written before it is written twice. It also deletes
|
||||||
flags' ai-app specifics.
|
the separate measurement recursion and its cache.
|
||||||
|
|
||||||
|
It is testable now that `iris::harness` is in: `tests/layout.rs` is where the
|
||||||
|
acceptance goes.
|
||||||
|
|
||||||
|
Two things to settle with the owner before writing it. The archive's `Widget`
|
||||||
|
grows five methods — `size_hint`, `is_size_independent`, `requires_exact_region`,
|
||||||
|
`access_role` and `child_order`; only the first three are sizing, and she
|
||||||
|
dislikes capability methods on the core trait, so `requires_exact_region` in
|
||||||
|
particular wants justifying (`Pad` sets it and then clears it when the content
|
||||||
|
fits, which reads as a workaround). And the archive writes all of it against
|
||||||
|
`LayoutLen` and `density`, which canonical does not have — recreate it on
|
||||||
|
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:
|
||||||
|
|
||||||
|
- **`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
|
||||||
|
at resolve time. 21 files mention `Len`, so it is wide but shallow. After the
|
||||||
|
draw-size slice, not before: that one deletes the `desired_*` bodies this
|
||||||
|
would otherwise have to be threaded through.
|
||||||
- **The input restructure** — `src/default/sense.rs` becomes `src/rsc/sense.rs`
|
- **The input restructure** — `src/default/sense.rs` becomes `src/rsc/sense.rs`
|
||||||
(308 lines to 2313), plus `core/src/event/controller.rs`, `desktop/input.rs`,
|
(308 lines to 2313), plus `core/src/event/controller.rs`, `desktop/input.rs`,
|
||||||
`android/input.rs` and `sense_tests.rs`: pointer capture, drag slop and axis,
|
`android/input.rs` and `sense_tests.rs`: pointer capture, drag slop and axis,
|
||||||
platform cancellation, mask-aware hit testing, event timestamps. It replaces
|
platform cancellation, mask-aware hit testing, event timestamps. The
|
||||||
the file #12 fixes. The archive's own `consumes` is what #12 now implements,
|
archive's own `consumes` is what #12 landed, so that part transplants;
|
||||||
so that part transplants; `tests/pointer_routing.rs` is the acceptance
|
`tests/pointer_routing.rs` is the acceptance criterion.
|
||||||
criterion for the slice.
|
- **The headless rig.** `scripts/run-headless.sh`, `headless.conf` and
|
||||||
- Widget draw size and measurement cleanup (source commit `6671194`).
|
`rig-input` are still only in ai-app's iris submodule, so a rendering claim
|
||||||
|
in canonical Iris is still verified by hand from another checkout. Small, and
|
||||||
|
independent of everything above.
|
||||||
- Retained span, scrolling and layout placement.
|
- Retained span, scrolling and layout placement.
|
||||||
- Retained paints, selection, overlays and shared UI runtime state.
|
- Retained paints, selection, overlays and shared UI runtime state.
|
||||||
- Generic desktop/Android framework hosts and reusable example/APK tooling.
|
- Generic desktop/Android framework hosts and reusable example/APK tooling.
|
||||||
@@ -275,5 +281,7 @@ argument for doing it next.
|
|||||||
| #11 | Atlas as an array texture, and the primitive rendering overhaul (`b234497`) |
|
| #11 | Atlas as an array texture, and the primitive rendering overhaul (`b234497`) |
|
||||||
| #13 | Build on wgpu 30 (`00d2230`) |
|
| #13 | Build on wgpu 30 (`00d2230`) |
|
||||||
| #14 | Rename the `Sized` widget to `SetSize` (`32b1038`) |
|
| #14 | Rename the `Sized` widget to `SetSize` (`32b1038`) |
|
||||||
|
| #15 | Run a ui without a window, and test one (`c8ac669`) |
|
||||||
|
| #12 | Route pointer input per kind (`43ce8c7`) |
|
||||||
|
|
||||||
URLs are `https://git.arirex.me/iris/iris/pulls/{number}`.
|
URLs are `https://git.arirex.me/iris/iris/pulls/{number}`.
|
||||||
Reference in new issue
Block a user