summaryrefslogtreecommitdiffstats
path: root/lazy/src/lazy.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-12-02 18:53:21 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-12-02 18:53:21 +0100
commit4029a1cdaaac1abbdcc141b20469a49670cd99b6 (patch)
tree71fa9d9c4aa1f02ce05771db43a4bb7bc6570e77 /lazy/src/lazy.rs
parent676d8efe03ebdbeeb95aef96b8097395b788b1ab (diff)
parent8b55e9b9e6ba0b83038dd491dd34d95b4f9a381b (diff)
downloadiced-4029a1cdaaac1abbdcc141b20469a49670cd99b6.tar.gz
iced-4029a1cdaaac1abbdcc141b20469a49670cd99b6.tar.bz2
iced-4029a1cdaaac1abbdcc141b20469a49670cd99b6.zip
Merge branch 'master' into non-uniform-border-radius-for-quads
Diffstat (limited to 'lazy/src/lazy.rs')
-rw-r--r--lazy/src/lazy.rs27
1 files changed, 9 insertions, 18 deletions
diff --git a/lazy/src/lazy.rs b/lazy/src/lazy.rs
index d61cc77e..2611dd10 100644
--- a/lazy/src/lazy.rs
+++ b/lazy/src/lazy.rs
@@ -207,7 +207,7 @@ where
}
fn overlay<'b>(
- &'b self,
+ &'b mut self,
tree: &'b mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
@@ -216,12 +216,12 @@ where
cached: self,
tree: &mut tree.children[0],
types: PhantomData,
- element_ref_builder: |cached| cached.element.borrow(),
- element_builder: |element_ref| {
- element_ref.as_ref().unwrap().borrow()
- },
- overlay_builder: |element, tree| {
- element.as_widget().overlay(tree, layout, renderer)
+ overlay_builder: |cached, tree| {
+ Rc::get_mut(cached.element.get_mut().as_mut().unwrap())
+ .unwrap()
+ .get_mut()
+ .as_widget_mut()
+ .overlay(tree, layout, renderer)
},
}
.build();
@@ -237,20 +237,11 @@ where
#[self_referencing]
struct Overlay<'a, 'b, Message, Renderer, Dependency, View> {
- cached: &'a Lazy<'b, Message, Renderer, Dependency, View>,
+ cached: &'a mut Lazy<'b, Message, Renderer, Dependency, View>,
tree: &'a mut Tree,
types: PhantomData<(Message, Dependency, View)>,
- #[borrows(cached)]
- #[covariant]
- element_ref:
- Ref<'this, Option<Rc<RefCell<Element<'static, Message, Renderer>>>>>,
-
- #[borrows(element_ref)]
- #[covariant]
- element: Ref<'this, Element<'static, Message, Renderer>>,
-
- #[borrows(element, mut tree)]
+ #[borrows(mut cached, mut tree)]
#[covariant]
overlay: Option<overlay::Element<'this, Message, Renderer>>,
}