diff --git a/src/dialog.rs b/src/dialog.rs index 35ab020..a5a792a 100644 --- a/src/dialog.rs +++ b/src/dialog.rs @@ -251,7 +251,8 @@ impl Dialog { self.cosmic .subscription() .map(DialogMessage) - .map(self.mapper) + .with(self.mapper) + .map(|(mapper, message)| mapper(message)) } pub fn update(&mut self, message: DialogMessage) -> Task { @@ -1709,16 +1710,17 @@ impl Application for App { ]; for (key, mounter) in MOUNTERS.iter() { - let key = *key; - subscriptions.push(mounter.subscription().map(move |mounter_message| { - match mounter_message { - MounterMessage::Items(items) => Message::MounterItems(key, items), - _ => { - log::warn!("{:?} not supported in dialog mode", mounter_message); - Message::None - } - } - })); + subscriptions.push( + mounter.subscription().with(*key).map( + |(key, mounter_message)| match mounter_message { + MounterMessage::Items(items) => Message::MounterItems(key, items), + _ => { + log::warn!("{:?} not supported in dialog mode", mounter_message); + Message::None + } + }, + ), + ); } Subscription::batch(subscriptions)