diff options
author | 2020-11-14 02:17:21 +0100 | |
---|---|---|
committer | 2020-11-14 02:17:21 +0100 | |
commit | 62295f554b885b8d486b666bc10dc4ecdc78c7d6 (patch) | |
tree | 4758f6f17301b1a6c252a5a32248ae5498d1bb11 /native/src/element.rs | |
parent | 73811c394a39c3816c67bffd2cf7d7a93c8803a9 (diff) | |
parent | bf2d2561b8dde3e160438428b59c03c38a5f752a (diff) | |
download | iced-62295f554b885b8d486b666bc10dc4ecdc78c7d6.tar.gz iced-62295f554b885b8d486b666bc10dc4ecdc78c7d6.tar.bz2 iced-62295f554b885b8d486b666bc10dc4ecdc78c7d6.zip |
Merge pull request #614 from hecrj/feature/event-capturing
Event capturing
Diffstat (limited to 'native/src/element.rs')
-rw-r--r-- | native/src/element.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/native/src/element.rs b/native/src/element.rs index 10e1b5fb..9703a7db 100644 --- a/native/src/element.rs +++ b/native/src/element.rs @@ -1,7 +1,8 @@ +use crate::event::{self, Event}; use crate::layout; use crate::overlay; use crate::{ - Clipboard, Color, Event, Hasher, Layout, Length, Point, Rectangle, Widget, + Clipboard, Color, Hasher, Layout, Length, Point, Rectangle, Widget, }; /// A generic [`Widget`]. @@ -240,7 +241,7 @@ where messages: &mut Vec<Message>, renderer: &Renderer, clipboard: Option<&dyn Clipboard>, - ) { + ) -> event::Status { self.widget.on_event( event, layout, @@ -248,7 +249,7 @@ where messages, renderer, clipboard, - ); + ) } /// Draws the [`Element`] and its children using the given [`Layout`]. @@ -335,10 +336,10 @@ where messages: &mut Vec<B>, renderer: &Renderer, clipboard: Option<&dyn Clipboard>, - ) { + ) -> event::Status { let mut original_messages = Vec::new(); - self.widget.on_event( + let status = self.widget.on_event( event, layout, cursor_position, @@ -350,6 +351,8 @@ where original_messages .drain(..) .for_each(|message| messages.push((self.mapper)(message))); + + status } fn draw( @@ -423,7 +426,7 @@ where messages: &mut Vec<Message>, renderer: &Renderer, clipboard: Option<&dyn Clipboard>, - ) { + ) -> event::Status { self.element.widget.on_event( event, layout, |