diff options
| author | 2024-11-13 17:08:26 +0100 | |
|---|---|---|
| committer | 2024-11-13 17:08:26 +0100 | |
| commit | a11fcf8f2dde551335c6f34788393fa2e8f8a362 (patch) | |
| tree | 1e423c847a6505a2582bec19908866dba94c436d /core/src/overlay | |
| 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 'core/src/overlay')
| -rw-r--r-- | core/src/overlay/element.rs | 17 | ||||
| -rw-r--r-- | core/src/overlay/group.rs | 29 | 
2 files changed, 19 insertions, 27 deletions
| diff --git a/core/src/overlay/element.rs b/core/src/overlay/element.rs index 32e987a3..ed870feb 100644 --- a/core/src/overlay/element.rs +++ b/core/src/overlay/element.rs @@ -1,11 +1,10 @@  pub use crate::Overlay; -use crate::event::{self, Event};  use crate::layout;  use crate::mouse;  use crate::renderer;  use crate::widget; -use crate::{Clipboard, Layout, Point, Rectangle, Shell, Size}; +use crate::{Clipboard, Event, Layout, Point, Rectangle, Shell, Size};  /// A generic [`Overlay`].  #[allow(missing_debug_implementations)] @@ -50,7 +49,7 @@ where      }      /// Processes a runtime [`Event`]. -    pub fn on_event( +    pub fn update(          &mut self,          event: Event,          layout: Layout<'_>, @@ -58,9 +57,9 @@ where          renderer: &Renderer,          clipboard: &mut dyn Clipboard,          shell: &mut Shell<'_, Message>, -    ) -> event::Status { +    ) {          self.overlay -            .on_event(event, layout, cursor, renderer, clipboard, shell) +            .update(event, layout, cursor, renderer, clipboard, shell);      }      /// Returns the current [`mouse::Interaction`] of the [`Element`]. @@ -149,7 +148,7 @@ where          self.content.operate(layout, renderer, operation);      } -    fn on_event( +    fn update(          &mut self,          event: Event,          layout: Layout<'_>, @@ -157,11 +156,11 @@ where          renderer: &Renderer,          clipboard: &mut dyn Clipboard,          shell: &mut Shell<'_, B>, -    ) -> event::Status { +    ) {          let mut local_messages = Vec::new();          let mut local_shell = Shell::new(&mut local_messages); -        let event_status = self.content.on_event( +        self.content.update(              event,              layout,              cursor, @@ -171,8 +170,6 @@ where          );          shell.merge(local_shell, self.mapper); - -        event_status      }      fn mouse_interaction( diff --git a/core/src/overlay/group.rs b/core/src/overlay/group.rs index 6541d311..2b374252 100644 --- a/core/src/overlay/group.rs +++ b/core/src/overlay/group.rs @@ -1,4 +1,3 @@ -use crate::event;  use crate::layout;  use crate::mouse;  use crate::overlay; @@ -73,7 +72,7 @@ where          )      } -    fn on_event( +    fn update(          &mut self,          event: Event,          layout: Layout<'_>, @@ -81,21 +80,17 @@ where          renderer: &Renderer,          clipboard: &mut dyn Clipboard,          shell: &mut Shell<'_, Message>, -    ) -> event::Status { -        self.children -            .iter_mut() -            .zip(layout.children()) -            .map(|(child, layout)| { -                child.on_event( -                    event.clone(), -                    layout, -                    cursor, -                    renderer, -                    clipboard, -                    shell, -                ) -            }) -            .fold(event::Status::Ignored, event::Status::merge) +    ) { +        for (child, layout) in self.children.iter_mut().zip(layout.children()) { +            child.update( +                event.clone(), +                layout, +                cursor, +                renderer, +                clipboard, +                shell, +            ); +        }      }      fn draw( | 
