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 6804de9d..97483982 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 @@ -118,17 +118,19 @@ pub async fn create_service(connection: &zbus::Connection) -> zbus::Result<()> { have_bus_name = false; } } else if let BusName::Unique(name) = &args.name { - let mut interface = interface.get_mut().await; - if let Some(idx) = interface - .items - .iter() - .position(|(unique_name, _)| unique_name == name) - { - let ctxt = SignalEmitter::new(&connection, OBJECT_PATH).unwrap(); - let service = interface.items.remove(idx).1; - StatusNotifierWatcher::status_notifier_item_unregistered(&ctxt, &service) - .await - .unwrap(); + if args.new_owner.is_none() { + let mut interface = interface.get_mut().await; + if let Some(idx) = interface + .items + .iter() + .position(|(unique_name, _)| unique_name == name) + { + let ctxt = SignalEmitter::new(&connection, OBJECT_PATH).unwrap(); + let service = interface.items.remove(idx).1; + StatusNotifierWatcher::status_notifier_item_unregistered(&ctxt, &service) + .await + .unwrap(); + } } } }