From 349a7f5a3e81ac17b04d9f27226440a1ea0b2865 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Wed, 18 Jan 2023 11:01:47 -0800 Subject: [PATCH] Handle toplevel removal --- src/main.rs | 5 +++++ src/wayland.rs | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) 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())); } }