diff options
author | 2022-05-13 18:45:03 +0200 | |
---|---|---|
committer | 2022-05-13 18:45:03 +0200 | |
commit | 4c98de0a53b9a59a3a03cee0c5d7ce34ac434067 (patch) | |
tree | e3936d86f7febd5a83f32e0899bb0d8b6a2f42e5 /lazy | |
parent | 3be8f6e98990f7e8a3af11400bbecaecddda336c (diff) | |
download | iced-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.rs | 36 | ||||
-rw-r--r-- | lazy/src/pure/component.rs | 40 |
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(), ); |