diff --git a/src/widget/toaster/mod.rs b/src/widget/toaster/mod.rs index 82ebde82..7a9cea78 100644 --- a/src/widget/toaster/mod.rs +++ b/src/widget/toaster/mod.rs @@ -157,7 +157,6 @@ new_key_type! { pub struct ToastId; } #[derive(Debug, Clone)] pub struct Toasts { toasts: SlotMap>, - // Note: can ghost keys left from calling `self.remove` queue: VecDeque, on_close: fn(ToastId) -> Message, limit: usize, @@ -205,5 +204,8 @@ impl Toasts { /// Remove a [`Toast`] pub fn remove(&mut self, id: ToastId) { self.toasts.remove(id); + if let Some(pos) = self.queue.iter().position(|key| *key == id) { + self.queue.remove(pos); + } } }