summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
authorLibravatar Andreas Hofstadler <andi@toringor.at>2021-11-07 14:32:18 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-11-29 14:41:05 +0700
commit08c771fa703f93faf57207a6793cf70cf105de5a (patch)
tree8d3b146046229c9d7675f329de95ebcc0dc9c8cc /winit
parentaeec0375f0897b2ef0897c4c54476b2d0db9311a (diff)
downloadiced-08c771fa703f93faf57207a6793cf70cf105de5a.tar.gz
iced-08c771fa703f93faf57207a6793cf70cf105de5a.tar.bz2
iced-08c771fa703f93faf57207a6793cf70cf105de5a.zip
Allow `Application::run` to return on native platforms
Diffstat (limited to 'winit')
-rw-r--r--winit/src/application.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 9ae1364d..e52283d7 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -17,6 +17,7 @@ use iced_graphics::window;
use iced_native::program::Program;
use iced_native::{Cache, UserInterface};
+use crate::winit::platform::run_return::EventLoopExtRunReturn;
use std::mem::ManuallyDrop;
/// An interactive, native cross-platform application.
@@ -119,7 +120,7 @@ where
let mut debug = Debug::new();
debug.startup_started();
- let event_loop = EventLoop::with_user_event();
+ let mut event_loop = EventLoop::with_user_event();
let mut proxy = event_loop.create_proxy();
let mut runtime = {
@@ -178,7 +179,7 @@ where
let mut context = task::Context::from_waker(task::noop_waker_ref());
- event_loop.run(move |event, _, control_flow| {
+ event_loop.run_return(move |event, _, control_flow| {
use winit::event_loop::ControlFlow;
if let ControlFlow::Exit = control_flow {
@@ -211,6 +212,8 @@ where
};
}
});
+
+ Ok(())
}
async fn run_instance<A, E, C>(
@@ -401,7 +404,7 @@ async fn run_instance<A, E, C>(
Err(error) => match error {
// This is an unrecoverable error.
window::SurfaceError::OutOfMemory => {
- panic!("{}", error);
+ panic!("{:?}", error);
}
_ => {
debug.render_finished();