diff options
| author | Adam Malczewski <[email protected]> | 2026-06-13 19:19:03 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-13 19:19:03 +0900 |
| commit | faf9d8c41ea87fe91f40af881ed1c920a82fac6f (patch) | |
| tree | 18e280937e5e1d3f15e858057e4eb9a8d28570a9 /packages/kernel/tests/test_kernel.cpp | |
| parent | 2c4271aba1dddcb508f5dea92063d829ba2e97c9 (diff) | |
| download | unbox-faf9d8c41ea87fe91f40af881ed1c920a82fac6f.tar.gz unbox-faf9d8c41ea87fe91f40af881ed1c920a82fac6f.zip | |
Slice 10 c2: stage dock end-to-end (minimize -> preview -> restore)
ext-stage-dock activate() now wires the full static pipeline: track toplevels via
the ext-xdg-shell Service; Super+M (stopgap keybinding) minimizes the focused
window -> snapshot a Preview from its scene_tree(), push a slot, hide() the live
node, refocus another window; the dock is one overlay UiSurface rendering the
slots via the b2 list bindings (data-for over {preview src, title}); tapping a
slot fires bind_list_event -> show()+focus() the window and drop its slot/Preview.
Storing the Toplevel* across minimize is safe because hide() keeps it mapped;
slots are dropped on on_toplevel_unmapped. Teardown is reverse-declaration-order
(subscriptions first, surface before slots), asan-clean.
host-bin installs ext-stage-dock (standard, depends_on xdg-shell; hidden until it
holds a minimized window). Headless glue test (real in-process xdg client) proves
the model + scene-node enable bit true->false->true, slots 0->1->0. RML carries
dock/slot classes as d1's RCSS animation hooks. Stopgaps: Super+M (to migrate into
an ext-keybindings action + a stage-dock Service post-d1); favicon deferred
(needs an XDG icon-theme dep — to surface to the user).
10/10 suites green on build + build-asan. Visual/tap path is real-seat (pending).
Diffstat (limited to 'packages/kernel/tests/test_kernel.cpp')
0 files changed, 0 insertions, 0 deletions
