summaryrefslogtreecommitdiffstats
path: root/winit/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-07 23:25:24 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-07 23:25:24 +0100
commitecf42b97df85df25b1b825f37adfeb00f658f6ee (patch)
tree43ea058c8b7d0b4a13f9fe3ad7015efeea94ed48 /winit/src
parent1bb5a1b9a23e1c4739430ac87ca33b06c2f4d9df (diff)
downloadiced-ecf42b97df85df25b1b825f37adfeb00f658f6ee.tar.gz
iced-ecf42b97df85df25b1b825f37adfeb00f658f6ee.tar.bz2
iced-ecf42b97df85df25b1b825f37adfeb00f658f6ee.zip
Fix `block_on` in `iced_wgpu` hanging Wasm builds
Diffstat (limited to 'winit/src')
-rw-r--r--winit/src/application.rs4
-rw-r--r--winit/src/multi_window.rs7
2 files changed, 7 insertions, 4 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 05a4f070..29ee1a71 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -97,7 +97,7 @@ where
/// Runs an [`Application`] with an executor, compositor, and the provided
/// settings.
-pub fn run<A, E, C>(
+pub async fn run<A, E, C>(
settings: Settings<A::Flags>,
compositor_settings: C::Settings,
) -> Result<(), Error>
@@ -188,7 +188,7 @@ where
};
}
- let compositor = C::new(compositor_settings, window.clone())?;
+ let compositor = C::new(compositor_settings, window.clone()).await?;
let mut renderer = compositor.create_renderer();
for font in settings.fonts {
diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs
index 03066d6c..49d4b8e8 100644
--- a/winit/src/multi_window.rs
+++ b/winit/src/multi_window.rs
@@ -12,7 +12,9 @@ use crate::core::widget::operation;
use crate::core::window;
use crate::core::{Point, Size};
use crate::futures::futures::channel::mpsc;
-use crate::futures::futures::{task, Future, StreamExt};
+use crate::futures::futures::executor;
+use crate::futures::futures::task;
+use crate::futures::futures::{Future, StreamExt};
use crate::futures::{Executor, Runtime, Subscription};
use crate::graphics::{compositor, Compositor};
use crate::multi_window::window_manager::WindowManager;
@@ -183,7 +185,8 @@ where
};
}
- let mut compositor = C::new(compositor_settings, main_window.clone())?;
+ let mut compositor =
+ executor::block_on(C::new(compositor_settings, main_window.clone()))?;
let mut window_manager = WindowManager::new();
let _ = window_manager.insert(