diff options
author | 2024-06-07 01:59:17 +0200 | |
---|---|---|
committer | 2024-06-10 22:03:46 +0200 | |
commit | 83296a73ebbb3c02ed63dfb4661056a8a8962267 (patch) | |
tree | b8a06ca99d4cede92136f6a8bdb9d6d9cd247459 | |
parent | ae2bf8ee40d1eb8f8176eae4541550fa2365f7a4 (diff) | |
download | iced-83296a73ebbb3c02ed63dfb4661056a8a8962267.tar.gz iced-83296a73ebbb3c02ed63dfb4661056a8a8962267.tar.bz2 iced-83296a73ebbb3c02ed63dfb4661056a8a8962267.zip |
Fix widget operations in `multi_window` runtime
-rw-r--r-- | winit/src/multi_window.rs | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs index b4c30a20..13839828 100644 --- a/winit/src/multi_window.rs +++ b/winit/src/multi_window.rs @@ -1272,25 +1272,20 @@ fn run_command<A, C, E>( std::mem::take(ui_caches), ); - 'operate: while let Some(mut operation) = - current_operation.take() - { + while let Some(mut operation) = current_operation.take() { for (id, ui) in uis.iter_mut() { if let Some(window) = window_manager.get_mut(*id) { ui.operate(&window.renderer, operation.as_mut()); + } + } - match operation.finish() { - operation::Outcome::None => {} - operation::Outcome::Some(message) => { - proxy.send(message); - - // operation completed, don't need to try to operate on rest of UIs - break 'operate; - } - operation::Outcome::Chain(next) => { - current_operation = Some(next); - } - } + match operation.finish() { + operation::Outcome::None => {} + operation::Outcome::Some(message) => { + proxy.send(message); + } + operation::Outcome::Chain(next) => { + current_operation = Some(next); } } } |