diff --git a/cosmic-applet-status-area/src/components/app.rs b/cosmic-applet-status-area/src/components/app.rs index e34a22b4..7e3510a9 100644 --- a/cosmic-applet-status-area/src/components/app.rs +++ b/cosmic-applet-status-area/src/components/app.rs @@ -108,6 +108,15 @@ impl cosmic::Application for App { } status_notifier_watcher::Event::Registered(name) => { let (state, cmd) = status_menu::State::new(name); + if let Some((id, m)) = self + .menus + .iter_mut() + .find(|(_, prev_state)| prev_state.name() == state.name()) + { + *m = state; + let id = *id; + return cmd.map(move |msg| app::message::app(Msg::StatusMenu((id, msg)))); + } let id = self.next_menu_id(); self.menus.insert(id, state); Command::batch([