summaryrefslogtreecommitdiffstats
path: root/widget/src/lazy
diff options
context:
space:
mode:
Diffstat (limited to 'widget/src/lazy')
-rw-r--r--widget/src/lazy/component.rs31
-rw-r--r--widget/src/lazy/responsive.rs23
2 files changed, 14 insertions, 40 deletions
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(