summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-06-07 01:59:17 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-06-10 22:03:46 +0200
commit83296a73ebbb3c02ed63dfb4661056a8a8962267 (patch)
treeb8a06ca99d4cede92136f6a8bdb9d6d9cd247459
parentae2bf8ee40d1eb8f8176eae4541550fa2365f7a4 (diff)
downloadiced-83296a73ebbb3c02ed63dfb4661056a8a8962267.tar.gz
iced-83296a73ebbb3c02ed63dfb4661056a8a8962267.tar.bz2
iced-83296a73ebbb3c02ed63dfb4661056a8a8962267.zip
Fix widget operations in `multi_window` runtime
-rw-r--r--winit/src/multi_window.rs25
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);
}
}
}