diff options
| author | Adam Malczewski <[email protected]> | 2026-06-15 14:20:16 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-15 14:20:16 +0900 |
| commit | 432f5a0d482a2999e8d20ce8b8283e4b1ad9ab0c (patch) | |
| tree | c3c9ea6bd71c6ee1396231d704e2cf7a7305e8b0 | |
| parent | f0f372ef6ca9cf77ca774583192e83a4cde88d32 (diff) | |
| download | unbox-432f5a0d482a2999e8d20ce8b8283e4b1ad9ab0c.tar.gz unbox-432f5a0d482a2999e8d20ce8b8283e4b1ad9ab0c.zip | |
docs(tasks): RML compositing Waves 1b-3 + click-to-focus done; next = real-seat verify + W4/W5 decisions
| -rw-r--r-- | tasks.md | 27 |
1 files changed, 21 insertions, 6 deletions
@@ -38,12 +38,27 @@ doctested) + `SurfaceElement::focus_keyboard()` primitive. Kernel suite (72c/375 in W3) + ext-layer-shell (expose its surface); **W3** = NEW `ext-window-field` (window list + RCSS layout + focus policy via `focus_keyboard()`, flips the flag); **W4** = ext-stage-dock; **W5** = damage limiting (Option B) + scanout bypass. -NEXT ACTION: **Wave 2** (ext-xdg-shell + ext-layer-shell, disjoint/parallel). -TRACKED BUG (pre-existing, baseline-confirmed, NOT from these waves): the -`ext-stage-dock-glue` + `ext-xdg-shell-client` test suites abort at teardown on a -wlroots `wl_list_empty(...commit.listener_list)` assertion (a listener-lifetime -teardown-order bug in those units' tests) — fix `ext-xdg-shell-client` in W2, -`ext-stage-dock-glue` in W4. +**Waves 1b/2/3 + click-to-focus DONE + verified + committed.** Core RML +compositing is FUNCTIONAL behind `--rml-compositing` / `UNBOX_RML_COMPOSITING`: +- W2 ext-xdg-shell: `Toplevel::wl_surface()` (additive; scene compositing intact). +- Kernel: fixed the W1 test-seam listener-lifetime bug (root cause of the + `ext-stage-dock-glue`/`ext-xdg-shell-client` teardown aborts — both now GREEN). +- W3 NEW `ext-window-field` (core, `--rml-compositing`-gated): toplevels become + RCSS surface elements in ONE window-field ui surface; `bind_list("wins")` + + RCSS flex layout (`assets/ext-window-field/field.{rml,rcss}`); `Toplevel::hide()` + takes them out of wlr_scene; focus via `on_toplevel_focused`. +- Click/tap-to-focus: kernel `SurfaceElement::on_pressed` + window-field wires it + to `Toplevel::focus()`. +All unit suites + build-asan green; no regressions. +NEXT ACTIONS (need USER): (1) **real-seat verification** — +`UNBOX_RML_COMPOSITING=1 ./build/packages/host-bin/unbox` nested under labwc / on +the CF-AX3 (headless has no GL, so the visual is the user's, like the spike +runbook). (2) **Wave 4 decision** — how minimize-to-dock coordinates with the +window-field. (3) **Wave 5 decision** — damage limiting has real unknowns (RmlUi +exposes no per-element screen damage), may need a spike or scoped Option-A. +DEFERRED: Wave 3b (layer-shell wallpaper as surface element — wallpaper/panels +already work via wlr_scene background/overlay bands); spike-target deletion + +final doc reconcile (after W5). Tiling (slice 7) is DEFERRED behind this (becomes RCSS over surface elements; pure layout core in `notes/tiling-spec.md` carries over). Stage dock (slice 10) real-seat feel check is paused under this pivot. |
