diff options
Diffstat (limited to '')
| -rw-r--r-- | widget/src/lazy.rs | 23 | ||||
| -rw-r--r-- | widget/src/lazy/component.rs | 31 | ||||
| -rw-r--r-- | widget/src/lazy/responsive.rs | 23 | 
3 files changed, 20 insertions, 57 deletions
| diff --git a/widget/src/lazy.rs b/widget/src/lazy.rs index dda6162b..eb663ea5 100644 --- a/widget/src/lazy.rs +++ b/widget/src/lazy.rs @@ -259,6 +259,7 @@ where          tree: &'b mut Tree,          layout: Layout<'_>,          renderer: &Renderer, +        translation: Vector,      ) -> Option<overlay::Element<'_, Message, Theme, Renderer>> {          let overlay = Overlay(Some(              InnerBuilder { @@ -275,18 +276,14 @@ where                  overlay_builder: |element, tree| {                      element                          .as_widget_mut() -                        .overlay(tree, layout, renderer) +                        .overlay(tree, layout, renderer, translation)                          .map(|overlay| RefCell::new(Nested::new(overlay)))                  },              }              .build(),          )); -        let has_overlay = -            overlay.with_overlay_maybe(|overlay| overlay.position()); - -        has_overlay -            .map(|position| overlay::Element::new(position, Box::new(overlay))) +        Some(overlay::Element::new(Box::new(overlay)))      }  } @@ -339,17 +336,9 @@ impl<'a, Message, Theme, Renderer> overlay::Overlay<Message, Theme, Renderer>  where      Renderer: core::Renderer,  { -    fn layout( -        &mut self, -        renderer: &Renderer, -        bounds: Size, -        position: Point, -        translation: Vector, -    ) -> layout::Node { -        self.with_overlay_maybe(|overlay| { -            overlay.layout(renderer, bounds, position, translation) -        }) -        .unwrap_or_default() +    fn layout(&mut self, renderer: &Renderer, bounds: Size) -> layout::Node { +        self.with_overlay_maybe(|overlay| overlay.layout(renderer, bounds)) +            .unwrap_or_default()      }      fn draw( diff --git a/widget/src/lazy/component.rs b/widget/src/lazy/component.rs index 30b1efed..edecbdaa 100644 --- a/widget/src/lazy/component.rs +++ b/widget/src/lazy/component.rs @@ -462,6 +462,7 @@ where          tree: &'b mut Tree,          layout: Layout<'_>,          renderer: &Renderer, +        translation: Vector,      ) -> Option<overlay::Element<'b, Message, Theme, Renderer>> {          self.rebuild_element_if_necessary();          let tree = tree @@ -486,6 +487,7 @@ where                                      &mut tree.children[0],                                      layout,                                      renderer, +                                    translation,                                  )                                  .map(|overlay| {                                      RefCell::new(Nested::new(overlay)) @@ -497,18 +499,9 @@ where              .build(),          )); -        let has_overlay = overlay.0.as_ref().unwrap().with_overlay(|overlay| { -            overlay.as_ref().map(|nested| nested.borrow().position()) -        }); - -        has_overlay.map(|position| { -            overlay::Element::new( -                position, -                Box::new(OverlayInstance { -                    overlay: Some(overlay), -                }), -            ) -        }) +        Some(overlay::Element::new(Box::new(OverlayInstance { +            overlay: Some(overlay), +        })))      }  } @@ -582,17 +575,9 @@ where      Renderer: core::Renderer,      S: 'static + Default,  { -    fn layout( -        &mut self, -        renderer: &Renderer, -        bounds: Size, -        position: Point, -        translation: Vector, -    ) -> layout::Node { -        self.with_overlay_maybe(|overlay| { -            overlay.layout(renderer, bounds, position, translation) -        }) -        .unwrap_or_default() +    fn layout(&mut self, renderer: &Renderer, bounds: Size) -> layout::Node { +        self.with_overlay_maybe(|overlay| overlay.layout(renderer, bounds)) +            .unwrap_or_default()      }      fn draw( diff --git a/widget/src/lazy/responsive.rs b/widget/src/lazy/responsive.rs index 9875b24e..44312a21 100644 --- a/widget/src/lazy/responsive.rs +++ b/widget/src/lazy/responsive.rs @@ -279,6 +279,7 @@ where          tree: &'b mut Tree,          layout: Layout<'_>,          renderer: &Renderer, +        translation: Vector,      ) -> Option<overlay::Element<'b, Message, Theme, Renderer>> {          use std::ops::DerefMut; @@ -309,17 +310,13 @@ where                  element                      .as_widget_mut() -                    .overlay(tree, content_layout, renderer) +                    .overlay(tree, content_layout, renderer, translation)                      .map(|overlay| RefCell::new(Nested::new(overlay)))              },          }          .build(); -        let has_overlay = -            overlay.with_overlay_maybe(|overlay| overlay.position()); - -        has_overlay -            .map(|position| overlay::Element::new(position, Box::new(overlay))) +        Some(overlay::Element::new(Box::new(overlay)))      }  } @@ -375,17 +372,9 @@ impl<'a, 'b, Message, Theme, Renderer>  where      Renderer: core::Renderer,  { -    fn layout( -        &mut self, -        renderer: &Renderer, -        bounds: Size, -        position: Point, -        translation: Vector, -    ) -> layout::Node { -        self.with_overlay_maybe(|overlay| { -            overlay.layout(renderer, bounds, position, translation) -        }) -        .unwrap_or_default() +    fn layout(&mut self, renderer: &Renderer, bounds: Size) -> layout::Node { +        self.with_overlay_maybe(|overlay| overlay.layout(renderer, bounds)) +            .unwrap_or_default()      }      fn draw( | 
