summaryrefslogtreecommitdiffstats
path: root/winit/src
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src')
-rw-r--r--winit/src/application.rs17
-rw-r--r--winit/src/system.rs2
2 files changed, 12 insertions, 7 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 421ae398..90b03d56 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -583,14 +583,19 @@ pub fn run_command<Message: 'static + std::fmt::Debug + Send, E: Executor>(
system::Action::QueryInformation(_tag) => {
#[cfg(feature = "system")]
{
- let information =
- crate::system::information(_graphics_info());
+ let graphics_info = _graphics_info();
+ let proxy = proxy.clone();
- let message = _tag(information);
+ let _ = std::thread::spawn(move || {
+ let information =
+ crate::system::information(graphics_info);
- proxy
- .send_event(message)
- .expect("Send message to event loop");
+ let message = _tag(information);
+
+ proxy
+ .send_event(message)
+ .expect("Send message to event loop")
+ });
}
}
},
diff --git a/winit/src/system.rs b/winit/src/system.rs
index fa4ad1a3..0ed61dc9 100644
--- a/winit/src/system.rs
+++ b/winit/src/system.rs
@@ -6,7 +6,7 @@ use iced_graphics::compositor;
/// Query for available system information.
pub fn fetch_information<Message>(
- f: impl Fn(Information) -> Message + 'static,
+ f: impl Fn(Information) -> Message + Send + 'static,
) -> Command<Message> {
Command::single(command::Action::System(Action::QueryInformation(
Box::new(f),