diff options
author | 2024-11-13 17:08:26 +0100 | |
---|---|---|
committer | 2024-11-13 17:08:26 +0100 | |
commit | a11fcf8f2dde551335c6f34788393fa2e8f8a362 (patch) | |
tree | 1e423c847a6505a2582bec19908866dba94c436d /widget/src/row.rs | |
parent | 42a2cb6d4f78343f43d6a68a28e5502d9426ed2c (diff) | |
parent | 28ec6df8f0ebf96966bee61caf5a325695314b7a (diff) | |
download | iced-a11fcf8f2dde551335c6f34788393fa2e8f8a362.tar.gz iced-a11fcf8f2dde551335c6f34788393fa2e8f8a362.tar.bz2 iced-a11fcf8f2dde551335c6f34788393fa2e8f8a362.zip |
Merge pull request #2662 from iced-rs/reactive-rendering
Reactive Rendering
Diffstat (limited to 'widget/src/row.rs')
-rw-r--r-- | widget/src/row.rs | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/widget/src/row.rs b/widget/src/row.rs index 9c0fa97e..96a4ab92 100644 --- a/widget/src/row.rs +++ b/widget/src/row.rs @@ -1,13 +1,12 @@ //! Distribute content horizontally. use crate::core::alignment::{self, Alignment}; -use crate::core::event::{self, Event}; use crate::core::layout::{self, Layout}; use crate::core::mouse; use crate::core::overlay; use crate::core::renderer; use crate::core::widget::{Operation, Tree}; use crate::core::{ - Clipboard, Element, Length, Padding, Pixels, Rectangle, Shell, Size, + Clipboard, Element, Event, Length, Padding, Pixels, Rectangle, Shell, Size, Vector, Widget, }; @@ -254,7 +253,7 @@ where }); } - fn on_event( + fn update( &mut self, tree: &mut Tree, event: Event, @@ -264,24 +263,24 @@ where clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, viewport: &Rectangle, - ) -> event::Status { - self.children + ) { + for ((child, state), layout) in self + .children .iter_mut() .zip(&mut tree.children) .zip(layout.children()) - .map(|((child, state), layout)| { - child.as_widget_mut().on_event( - state, - event.clone(), - layout, - cursor, - renderer, - clipboard, - shell, - viewport, - ) - }) - .fold(event::Status::Ignored, event::Status::merge) + { + child.as_widget_mut().update( + state, + event.clone(), + layout, + cursor, + renderer, + clipboard, + shell, + viewport, + ); + } } fn mouse_interaction( @@ -493,7 +492,7 @@ where self.row.operate(tree, layout, renderer, operation); } - fn on_event( + fn update( &mut self, tree: &mut Tree, event: Event, @@ -503,10 +502,10 @@ where clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, viewport: &Rectangle, - ) -> event::Status { - self.row.on_event( + ) { + self.row.update( tree, event, layout, cursor, renderer, clipboard, shell, viewport, - ) + ); } fn mouse_interaction( |