diff --git a/src/server/mod.rs b/src/server/mod.rs index 0850e3f..c0ce7ca 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -216,7 +216,10 @@ impl SurfaceData { fn destroy_role(&mut self) { if let Some(role) = self.role.take() { match role { - SurfaceRole::Toplevel(Some(t)) => { + SurfaceRole::Toplevel(Some(mut t)) => { + if let Some(decoration) = t.decoration.take() { + decoration.destroy(); + } t.toplevel.destroy(); t.xdg.surface.destroy(); }