redox-wayland-compositor/crates
Votre Nom c40ca9fcc8 🎉 Phase 7.4 — focus + raise on click validés runtime
Sur clic gauche, le compositor fait hit_test à la position curseur,
raise la surface ciblée au top du Z-order et transfère le keyboard
focus à cette surface (broadcast wl_keyboard.leave/enter via le
set_focus déjà implémenté en 7.2).

Frontend additions :
- HashMap<SurfaceId, wl_surface::WlSurface> dans WaylandFrontend,
  peuplée au wl_compositor.create_surface (capture du retour de
  data_init.init), nettoyée au wl_surface.destroy
- Au wl_surface.destroy : clear focused_surface et cursor_surface_id
  si la surface détruite était l'une de ces références (évite les
  wl_surface fantômes dans les events suivants)
- forward_input(PointerButton.left=true) déclenche
  registry.hit_test(cursor_x, cursor_y), puis si la cible n'est pas
  une surface curseur : registry.raise + set_focus(target)
- println! tracing pour [frontend] left-click et focus change

Nouveau crate : redox-wl-test-client-shm-two
- Binaire qui fork() : parent = fenêtre A (verte, pyramide), enfant
  = fenêtre B (magenta, double cercle) après sleep 800ms
- 2 connexions Wayland indépendantes au même socket compositor
- timeout 160s aligné sur le compositor 180s

Validation runtime : 4 captures synchronisées via cycle de
positionnement curseur temporaire (retiré après) prouvent les
2 transitions de Z-order :
- initial : B au top (commit le plus récent)
- click@(80,80) → hit A → A passe au top
- click@(400,280) → hit B → B repasse au top

Traces /tmp/comp.log (extraites via redoxfs) confirment :
[frontend] left-click @ (80, 80) → hit_test = Some(SurfaceId(0))
[frontend] focus change: Some(SurfaceId(1)) → Some(SurfaceId(0))
[frontend] left-click @ (400, 280) → hit_test = Some(SurfaceId(1))
[frontend] focus change: Some(SurfaceId(0)) → Some(SurfaceId(1))

Pipeline validé end-to-end :
mouse_button QEMU → ps2d → inputd → InputBackend::poll →
RedoxInputEvent::PointerButton → forward_input → hit_test →
raise + set_focus → wl_keyboard.leave/enter broadcast.

Doc complète : docs/phase7-4-focus-raise.md.

Leyoda 2026 – GPLv3
2026-05-13 10:21:05 +02:00
..
redox-wl-compositor 🎉 Phase 7.3 — curseur software validé runtime 2026-05-13 09:06:56 +02:00
redox-wl-compositor-core 🎉 Phase 6.3 — display + input + compositor-core intégrés runtime 2026-05-09 12:20:04 +02:00
redox-wl-display 🎉 Phase 6.3 — display + input + compositor-core intégrés runtime 2026-05-09 12:20:04 +02:00
redox-wl-fullscreen-paint 🎉 Phase 4 vraie validée visuellement : pixels custom plein écran 2026-05-09 10:46:20 +02:00
redox-wl-input 🎉 Phase 5 — input backend Redox validé runtime 2026-05-09 11:22:54 +02:00
redox-wl-poc-pixels 🎉 Phase 4 vraie validée visuellement : pixels custom plein écran 2026-05-09 10:46:20 +02:00
redox-wl-test-client-input 🎉 Phase 7.2 — wl_seat + wl_keyboard + wl_pointer routing input 2026-05-09 15:05:03 +02:00
redox-wl-test-client-shm 🎉 Phase 7.3 — curseur software validé runtime 2026-05-13 09:06:56 +02:00
redox-wl-test-client-shm-two 🎉 Phase 7.4 — focus + raise on click validés runtime 2026-05-13 10:21:05 +02:00
redox-wl-test-compose-static 🎉 Phase 6.3 — display + input + compositor-core intégrés runtime 2026-05-09 12:20:04 +02:00
redox-wl-test-display-backend Phase 4.4 : binaire prêt pour test sur image bootée 2026-05-08 20:04:16 +02:00
redox-wl-test-fd-passing Initial commit: phases 1-3 du portage Wayland Rust pour Redox OS 2026-05-08 17:41:55 +02:00
redox-wl-test-fd-passing-fork Initial commit: phases 1-3 du portage Wayland Rust pour Redox OS 2026-05-08 17:41:55 +02:00
redox-wl-test-handshake Initial commit: phases 1-3 du portage Wayland Rust pour Redox OS 2026-05-08 17:41:55 +02:00
redox-wl-test-input 🎉 Phase 5 — input backend Redox validé runtime 2026-05-09 11:22:54 +02:00
redox-wl-test-poll-multifd Initial commit: phases 1-3 du portage Wayland Rust pour Redox OS 2026-05-08 17:41:55 +02:00
redox-wl-test-shm-open Initial commit: phases 1-3 du portage Wayland Rust pour Redox OS 2026-05-08 17:41:55 +02:00
redox-wl-test-shm-pipeline Initial commit: phases 1-3 du portage Wayland Rust pour Redox OS 2026-05-08 17:41:55 +02:00
redox-wl-test-unix-socket Initial commit: phases 1-3 du portage Wayland Rust pour Redox OS 2026-05-08 17:41:55 +02:00
redox-wl-wayland-frontend 🎉 Phase 7.4 — focus + raise on click validés runtime 2026-05-13 10:21:05 +02:00