Implement window::close action and remove should_exit
This commit is contained in:
parent
0591798db7
commit
b5ab50b2a8
5 changed files with 21 additions and 15 deletions
|
|
@ -93,13 +93,6 @@ where
|
|||
fn scale_factor(&self) -> f64 {
|
||||
1.0
|
||||
}
|
||||
|
||||
/// Returns whether the [`Application`] should be terminated.
|
||||
///
|
||||
/// By default, it returns `false`.
|
||||
fn should_exit(&self) -> bool {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
/// Runs an [`Application`] with an executor, compositor, and the provided
|
||||
|
|
@ -255,6 +248,7 @@ async fn run_instance<A, E, C>(
|
|||
let mut clipboard = Clipboard::connect(&window);
|
||||
let mut cache = user_interface::Cache::default();
|
||||
let mut surface = compositor.create_surface(&window);
|
||||
let mut should_exit = false;
|
||||
|
||||
let mut state = State::new(&application, &window);
|
||||
let mut viewport_version = state.viewport_version();
|
||||
|
|
@ -275,6 +269,7 @@ async fn run_instance<A, E, C>(
|
|||
init_command,
|
||||
&mut runtime,
|
||||
&mut clipboard,
|
||||
&mut should_exit,
|
||||
&mut proxy,
|
||||
&mut debug,
|
||||
&window,
|
||||
|
|
@ -336,6 +331,7 @@ async fn run_instance<A, E, C>(
|
|||
&mut renderer,
|
||||
&mut runtime,
|
||||
&mut clipboard,
|
||||
&mut should_exit,
|
||||
&mut proxy,
|
||||
&mut debug,
|
||||
&mut messages,
|
||||
|
|
@ -346,8 +342,6 @@ async fn run_instance<A, E, C>(
|
|||
// Update window
|
||||
state.synchronize(&application, &window);
|
||||
|
||||
let should_exit = application.should_exit();
|
||||
|
||||
user_interface = ManuallyDrop::new(build_user_interface(
|
||||
&application,
|
||||
cache,
|
||||
|
|
@ -555,6 +549,7 @@ pub fn update<A: Application, E: Executor>(
|
|||
renderer: &mut A::Renderer,
|
||||
runtime: &mut Runtime<E, Proxy<A::Message>, A::Message>,
|
||||
clipboard: &mut Clipboard,
|
||||
should_exit: &mut bool,
|
||||
proxy: &mut winit::event_loop::EventLoopProxy<A::Message>,
|
||||
debug: &mut Debug,
|
||||
messages: &mut Vec<A::Message>,
|
||||
|
|
@ -578,6 +573,7 @@ pub fn update<A: Application, E: Executor>(
|
|||
command,
|
||||
runtime,
|
||||
clipboard,
|
||||
should_exit,
|
||||
proxy,
|
||||
debug,
|
||||
window,
|
||||
|
|
@ -598,6 +594,7 @@ pub fn run_command<A, E>(
|
|||
command: Command<A::Message>,
|
||||
runtime: &mut Runtime<E, Proxy<A::Message>, A::Message>,
|
||||
clipboard: &mut Clipboard,
|
||||
should_exit: &mut bool,
|
||||
proxy: &mut winit::event_loop::EventLoopProxy<A::Message>,
|
||||
debug: &mut Debug,
|
||||
window: &winit::window::Window,
|
||||
|
|
@ -629,6 +626,9 @@ pub fn run_command<A, E>(
|
|||
}
|
||||
},
|
||||
command::Action::Window(action) => match action {
|
||||
window::Action::Close => {
|
||||
*should_exit = true;
|
||||
}
|
||||
window::Action::Drag => {
|
||||
let _res = window.drag_window();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue