Fix crash for dialog in debug mode
`Subscription::map` must be provided a non-capturing closure. A couple places were passing capturing closures, which caused a debug assert failure. These have been fixed.
This commit is contained in:
parent
02a96ba812
commit
76a3dd6279
1 changed files with 13 additions and 11 deletions
|
|
@ -251,7 +251,8 @@ impl<M: Send + 'static> Dialog<M> {
|
||||||
self.cosmic
|
self.cosmic
|
||||||
.subscription()
|
.subscription()
|
||||||
.map(DialogMessage)
|
.map(DialogMessage)
|
||||||
.map(self.mapper)
|
.with(self.mapper)
|
||||||
|
.map(|(mapper, message)| mapper(message))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update(&mut self, message: DialogMessage) -> Task<M> {
|
pub fn update(&mut self, message: DialogMessage) -> Task<M> {
|
||||||
|
|
@ -1709,16 +1710,17 @@ impl Application for App {
|
||||||
];
|
];
|
||||||
|
|
||||||
for (key, mounter) in MOUNTERS.iter() {
|
for (key, mounter) in MOUNTERS.iter() {
|
||||||
let key = *key;
|
subscriptions.push(
|
||||||
subscriptions.push(mounter.subscription().map(move |mounter_message| {
|
mounter.subscription().with(*key).map(
|
||||||
match mounter_message {
|
|(key, mounter_message)| match mounter_message {
|
||||||
MounterMessage::Items(items) => Message::MounterItems(key, items),
|
MounterMessage::Items(items) => Message::MounterItems(key, items),
|
||||||
_ => {
|
_ => {
|
||||||
log::warn!("{:?} not supported in dialog mode", mounter_message);
|
log::warn!("{:?} not supported in dialog mode", mounter_message);
|
||||||
Message::None
|
Message::None
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}));
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Subscription::batch(subscriptions)
|
Subscription::batch(subscriptions)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue