Return true in the Window::on_event callback if event was handled

This commit is contained in:
Antonio Scandurra
2022-06-17 17:09:16 +02:00
parent ae2273b40a
commit 607903eed5
5 changed files with 15 additions and 9 deletions
+2 -2
View File
@@ -164,7 +164,7 @@ pub struct Window(Rc<RefCell<WindowState>>);
struct WindowState {
id: usize,
native_window: id,
event_callback: Option<Box<dyn FnMut(Event)>>,
event_callback: Option<Box<dyn FnMut(Event) -> bool>>,
activate_callback: Option<Box<dyn FnMut(bool)>>,
resize_callback: Option<Box<dyn FnMut()>>,
close_callback: Option<Box<dyn FnOnce()>>,
@@ -331,7 +331,7 @@ impl platform::Window for Window {
self
}
fn on_event(&mut self, callback: Box<dyn FnMut(Event)>) {
fn on_event(&mut self, callback: Box<dyn FnMut(Event) -> bool>) {
self.0.as_ref().borrow_mut().event_callback = Some(callback);
}
+2 -2
View File
@@ -34,7 +34,7 @@ pub struct Window {
size: Vector2F,
scale_factor: f32,
current_scene: Option<crate::Scene>,
event_handlers: Vec<Box<dyn FnMut(super::Event)>>,
event_handlers: Vec<Box<dyn FnMut(super::Event) -> bool>>,
resize_handlers: Vec<Box<dyn FnMut()>>,
close_handlers: Vec<Box<dyn FnOnce()>>,
pub(crate) title: Option<String>,
@@ -233,7 +233,7 @@ impl super::Window for Window {
self
}
fn on_event(&mut self, callback: Box<dyn FnMut(crate::Event)>) {
fn on_event(&mut self, callback: Box<dyn FnMut(crate::Event) -> bool>) {
self.event_handlers.push(callback);
}