diff --git a/libwaysip/examples/base.rs b/libwaysip/examples/base.rs index f49fede..24ce26c 100644 --- a/libwaysip/examples/base.rs +++ b/libwaysip/examples/base.rs @@ -28,7 +28,7 @@ fn main() { get_area( Some(WaysipConnection { connection: &connection, - globals + globals: &globals }), SelectionType::Area ) diff --git a/libwaysip/src/lib.rs b/libwaysip/src/lib.rs index ee8d0a7..1f22c0c 100644 --- a/libwaysip/src/lib.rs +++ b/libwaysip/src/lib.rs @@ -190,9 +190,12 @@ fn get_area_inner( layer_shell.destroy(); for surface in &state.wl_surfaces { + surface.layer.destroy(); surface.wl_surface.destroy(); surface.cursor_surface.destroy(); surface.buffer.destroy(); } + state.wl_surfaces.clear(); + let _ = event_queue.roundtrip(&mut state); Ok(state.area_info()) }