summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/tests/test_kernel.cpp
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-15 13:47:24 +0900
committerAdam Malczewski <[email protected]>2026-06-15 13:47:24 +0900
commited1e3d60fe209af06911c640a145936f71adc238 (patch)
tree70402344391eaddbb0a5360bd2a613e7fe5ca12f /packages/kernel/tests/test_kernel.cpp
parent91312ec3e164b04216ca10cd36bf77a6b72be533 (diff)
downloadunbox-ed1e3d60fe209af06911c640a145936f71adc238.tar.gz
unbox-ed1e3d60fe209af06911c640a145936f71adc238.zip
ext-window-field(rml-compositing W3): toplevels as RCSS surface elements
NEW core unit (id "window-field", depends_on "xdg-shell"), installed by host-bin ONLY under --rml-compositing / UNBOX_RML_COMPOSITING (default off; the classic wlr_scene path stays the default until RML compositing is signed off on hardware). It composites application toplevels as RCSS surface elements inside ONE ui surface (the window field) instead of as wlr_scene nodes: - activate(): fetch ext-xdg-shell Service (typed), create the window-field UiSurface at SceneLayer::normal sized to the primary output, subscribe to on_output_added + on_toplevel_mapped/unmapped/focused. - on map: Toplevel::wl_surface() -> UiSubstrate::create_surface_element(); the toplevel is Toplevel::hide()'d out of wlr_scene (the surface element is now the sole compositor of its pixels; the substrate drives its frame callbacks); appended to bind_list("wins") (live_uri = source_uri(), focused, title, app_id). - on unmap: drop the SurfaceElement + row. on focus: flip the focused flag. - Layout/animation are RCSS (assets/ext-window-field/field.{rml,rcss}): a wrapping flex field where the focused window dominates and the rest tile below, animated on a transition. No geometry from C++ (the user's contract decision). - Keyboard focus stays ext-xdg-shell's job; pointer/touch input-back is automatic in the kernel; this unit wires no seat calls. Wiring (orchestrator): root meson subdir, host-bin install behind the flag + ext_window_field_dep. Headless glue test (40 assertions): map tracks the window + drives hide(), 2nd map, focus flip via the Alt+Tab path, unmap removes it; no-GL degrade asserted. build + build-asan green; host-bin links; no regressions. Known gaps (change-requests): click-to-focus a BACKGROUND window needs a kernel "surface-element pressed -> notify owner" hook (next); wallpaper needs ext-layer-shell surface exposure (Wave 3b).
Diffstat (limited to 'packages/kernel/tests/test_kernel.cpp')
0 files changed, 0 insertions, 0 deletions