diff --git a/crates/redox-wl-compositor/src/main.rs b/crates/redox-wl-compositor/src/main.rs index af0c692..126ee26 100644 --- a/crates/redox-wl-compositor/src/main.rs +++ b/crates/redox-wl-compositor/src/main.rs @@ -116,6 +116,11 @@ fn run() -> Result<(), Box> { dlog(&format!("[comp] dispatch err: {e}")); } + // 2.5. Phase 7.6 : nettoyer les surfaces des clients déconnectés. + // Sans ça les surfaces persistent après un close socket brutal + // (sub-bug 7.5). + frontend.garbage_collect_dead_clients(); + // 3. Input if let Ok(events) = input.poll() { if !events.is_empty() { diff --git a/crates/redox-wl-wayland-frontend/src/lib.rs b/crates/redox-wl-wayland-frontend/src/lib.rs index 4e63f05..68dae81 100644 --- a/crates/redox-wl-wayland-frontend/src/lib.rs +++ b/crates/redox-wl-wayland-frontend/src/lib.rs @@ -150,8 +150,11 @@ struct SurfaceData { /// SurfaceId associé dans le SurfaceRegistry. /// Initialisé par `wl_compositor.create_surface` via Mutex