From 3be8f6e98990f7e8a3af11400bbecaecddda336c Mon Sep 17 00:00:00 2001 From: Nick Senger Date: Tue, 10 May 2022 17:18:08 -0700 Subject: fix: prevent building overlay with stale layout --- lazy/src/component.rs | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) (limited to 'lazy/src/component.rs') diff --git a/lazy/src/component.rs b/lazy/src/component.rs index 9e5937e9..06392c33 100644 --- a/lazy/src/component.rs +++ b/lazy/src/component.rs @@ -376,6 +376,38 @@ 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( @@ -410,9 +442,7 @@ where Some( CacheBuilder { element: state.view(), - overlay_builder: |element| { - element.overlay(layout, renderer) - }, + overlay_builder: |_| None, } .build(), ) -- cgit From 4c98de0a53b9a59a3a03cee0c5d7ce34ac434067 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 13 May 2022 18:45:03 +0200 Subject: Revert "fix: prevent building overlay with stale layout" This reverts commit 3be8f6e98990f7e8a3af11400bbecaecddda336c. --- lazy/src/component.rs | 36 +++--------------------------------- 1 file changed, 3 insertions(+), 33 deletions(-) (limited to 'lazy/src/component.rs') 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(), ) -- cgit From ea389ac34c5a4929b7369da0f163ab6ae07bc000 Mon Sep 17 00:00:00 2001 From: Nick Senger Date: Fri, 13 May 2022 12:38:16 -0700 Subject: remove rebuild of component overlay from `on_event` --- lazy/src/component.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'lazy/src/component.rs') diff --git a/lazy/src/component.rs b/lazy/src/component.rs index 9e5937e9..2029c2a3 100644 --- a/lazy/src/component.rs +++ b/lazy/src/component.rs @@ -410,9 +410,7 @@ where Some( CacheBuilder { element: state.view(), - overlay_builder: |element| { - element.overlay(layout, renderer) - }, + overlay_builder: |_| None, } .build(), ) -- cgit