Fix widget operations in multi_window runtime
This commit is contained in:
parent
ae2bf8ee40
commit
83296a73eb
1 changed files with 10 additions and 15 deletions
|
|
@ -1272,25 +1272,20 @@ fn run_command<A, C, E>(
|
||||||
std::mem::take(ui_caches),
|
std::mem::take(ui_caches),
|
||||||
);
|
);
|
||||||
|
|
||||||
'operate: while let Some(mut operation) =
|
while let Some(mut operation) = current_operation.take() {
|
||||||
current_operation.take()
|
|
||||||
{
|
|
||||||
for (id, ui) in uis.iter_mut() {
|
for (id, ui) in uis.iter_mut() {
|
||||||
if let Some(window) = window_manager.get_mut(*id) {
|
if let Some(window) = window_manager.get_mut(*id) {
|
||||||
ui.operate(&window.renderer, operation.as_mut());
|
ui.operate(&window.renderer, operation.as_mut());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
match operation.finish() {
|
match operation.finish() {
|
||||||
operation::Outcome::None => {}
|
operation::Outcome::None => {}
|
||||||
operation::Outcome::Some(message) => {
|
operation::Outcome::Some(message) => {
|
||||||
proxy.send(message);
|
proxy.send(message);
|
||||||
|
}
|
||||||
// operation completed, don't need to try to operate on rest of UIs
|
operation::Outcome::Chain(next) => {
|
||||||
break 'operate;
|
current_operation = Some(next);
|
||||||
}
|
|
||||||
operation::Outcome::Chain(next) => {
|
|
||||||
current_operation = Some(next);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue