diff --git a/cosmic-applet-status-area/src/subscriptions/status_notifier_watcher/server.rs b/cosmic-applet-status-area/src/subscriptions/status_notifier_watcher/server.rs index 5cf2455f..816a0be7 100644 --- a/cosmic-applet-status-area/src/subscriptions/status_notifier_watcher/server.rs +++ b/cosmic-applet-status-area/src/subscriptions/status_notifier_watcher/server.rs @@ -37,11 +37,15 @@ impl StatusNotifierWatcher { } else { service.to_string() }; - Self::status_notifier_item_registered(&ctxt, &service) - .await - .unwrap(); - self.items.push((sender.to_owned(), service)); + // Ignore duplicate + if !self.items.iter().any(|(a, b)| (a, b) == (sender, &service)) { + Self::status_notifier_item_registered(&ctxt, &service) + .await + .unwrap(); + + self.items.push((sender.to_owned(), service)); + } } fn register_status_notifier_host(&self, _service: &str) {