summaryrefslogtreecommitdiffstats
path: root/lazy
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-05-13 18:45:03 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-05-13 18:45:03 +0200
commit4c98de0a53b9a59a3a03cee0c5d7ce34ac434067 (patch)
treee3936d86f7febd5a83f32e0899bb0d8b6a2f42e5 /lazy
parent3be8f6e98990f7e8a3af11400bbecaecddda336c (diff)
downloadiced-4c98de0a53b9a59a3a03cee0c5d7ce34ac434067.tar.gz
iced-4c98de0a53b9a59a3a03cee0c5d7ce34ac434067.tar.bz2
iced-4c98de0a53b9a59a3a03cee0c5d7ce34ac434067.zip
Revert "fix: prevent building overlay with stale layout"
This reverts commit 3be8f6e98990f7e8a3af11400bbecaecddda336c.
Diffstat (limited to 'lazy')
-rw-r--r--lazy/src/component.rs36
-rw-r--r--lazy/src/pure/component.rs40
2 files changed, 13 insertions, 63 deletions
diff --git a/lazy/src/component.rs b/lazy/src/component.rs
index 06392c33..9e5937e9 100644
--- a/lazy/src/component.rs
+++ b/lazy/src/component.rs
@@ -376,38 +376,6 @@ where
let mut local_messages = Vec::new();
let mut local_shell = Shell::new(&mut local_messages);
- if self
- .instance
- .state
- .borrow()
- .as_ref()
- .and_then(|state| state.borrow_cache().as_ref())
- .and_then(|cache| cache.borrow_overlay().as_ref())
- .is_none()
- {
- let component =
- self.instance.state.take().unwrap().into_heads().component;
-
- self.instance.state = RefCell::new(Some(
- StateBuilder {
- component,
- message: PhantomData,
- cache_builder: |state| {
- Some(
- CacheBuilder {
- element: state.view(),
- overlay_builder: |element| {
- element.overlay(layout, renderer)
- },
- }
- .build(),
- )
- },
- }
- .build(),
- ));
- }
-
let event_status = self
.with_overlay_mut_maybe(|overlay| {
overlay.on_event(
@@ -442,7 +410,9 @@ where
Some(
CacheBuilder {
element: state.view(),
- overlay_builder: |_| None,
+ overlay_builder: |element| {
+ element.overlay(layout, renderer)
+ },
}
.build(),
)
diff --git a/lazy/src/pure/component.rs b/lazy/src/pure/component.rs
index bf6ff908..2971d2b7 100644
--- a/lazy/src/pure/component.rs
+++ b/lazy/src/pure/component.rs
@@ -415,35 +415,6 @@ where
let mut local_messages = Vec::new();
let mut local_shell = Shell::new(&mut local_messages);
- if self
- .overlay
- .as_ref()
- .and_then(|overlay| overlay.borrow_overlay().as_ref())
- .is_none()
- {
- let overlay = self.overlay.take().unwrap().into_heads();
-
- self.overlay = Some(
- OverlayBuilder {
- instance: overlay.instance,
- instance_ref_builder: |instance| instance.state.borrow(),
- tree: overlay.tree,
- types: PhantomData,
- overlay_builder: |instance, tree| {
- instance
- .as_ref()
- .unwrap()
- .borrow_element()
- .as_ref()
- .unwrap()
- .as_widget()
- .overlay(&mut tree.children[0], layout, renderer)
- },
- }
- .build(),
- );
- }
-
let event_status = self
.with_overlay_mut_maybe(|overlay| {
overlay.on_event(
@@ -493,7 +464,16 @@ where
instance_ref_builder: |instance| instance.state.borrow(),
tree: overlay.tree,
types: PhantomData,
- overlay_builder: |_, _| None,
+ overlay_builder: |instance, tree| {
+ instance
+ .as_ref()
+ .unwrap()
+ .borrow_element()
+ .as_ref()
+ .unwrap()
+ .as_widget()
+ .overlay(&mut tree.children[0], layout, renderer)
+ },
}
.build(),
);