diff options
author | 2024-03-07 23:25:24 +0100 | |
---|---|---|
committer | 2024-03-07 23:25:24 +0100 | |
commit | ecf42b97df85df25b1b825f37adfeb00f658f6ee (patch) | |
tree | 43ea058c8b7d0b4a13f9fe3ad7015efeea94ed48 /winit/src | |
parent | 1bb5a1b9a23e1c4739430ac87ca33b06c2f4d9df (diff) | |
download | iced-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.rs | 4 | ||||
-rw-r--r-- | winit/src/multi_window.rs | 7 |
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( |