diff --git a/src/main.rs b/src/main.rs index 206fab3..dc0d690 100644 --- a/src/main.rs +++ b/src/main.rs @@ -210,6 +210,11 @@ impl Application for App { img: None, }); } + wayland::Event::CloseToplevel(handle) => { + if let Some(idx) = self.toplevels.iter().position(|x| x.handle == handle) { + self.toplevels.remove(idx); + } + } wayland::Event::WorkspaceCapture(handle, image) => { if let Some(workspace) = self.workspace_for_handle_mut(&handle) { workspace.img = Some(image.clone()); diff --git a/src/wayland.rs b/src/wayland.rs index 00b5f08..bbf085d 100644 --- a/src/wayland.rs +++ b/src/wayland.rs @@ -56,6 +56,7 @@ pub enum Event { zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1, ToplevelInfo, ), + CloseToplevel(zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1), ToplevelCapture( zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1, image::Handle, @@ -230,7 +231,7 @@ impl ToplevelInfoHandler for AppData { _qh: &QueueHandle, toplevel: &zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1, ) { - // TODO + self.send_event(Event::CloseToplevel(toplevel.clone())); } }