redox-wayland-compositor/crates/redox-wl-wayland-frontend
Votre Nom dfb5c66453 Phase 13.2.b.2 fix — raise des subsurfaces avec leur parent
Bug observé sur le client de test 13.2.b.3 : le carré rouge subsurface
est rendu correctement au commit du child (à parent_pos + offset), mais
le `parent_surface.commit()` final côté client appelle raise(parent) et
place le parent au-dessus du child dans le z_order. Résultat visuel :
parent overdraw child, subsurface invisible.

Fix : après raise(parent_id), scanner surfaces_by_id pour trouver toutes
les subsurfaces dont le subsurface_link.parent pointe vers cette
SurfaceId, et les raise() juste après. Coût O(N) par raise, mais N est
petit (1-10 toplevels typique).

Note design : c'est une solution naïve. Une vraie implémentation
maintient un index parent_id → Vec<child_id> mis à jour à GetSubsurface
et à Destroy. À durcir en phase 13.2.b.5 si le scan O(N) devient
limitant (genre 50+ surfaces visibles).

Les 2 tests natifs continuent de passer en non-régression.

Leyoda 2026 – GPLv3
2026-05-16 14:33:11 +02:00
..
src Phase 13.2.b.2 fix — raise des subsurfaces avec leur parent 2026-05-16 14:33:11 +02:00
Cargo.toml Sprint 0 — industrialisation : CI, tracing, tests xdg-shell, GPLv3 2026-05-14 20:46:07 +02:00