diff options
author | 2022-11-03 02:28:54 +0100 | |
---|---|---|
committer | 2022-11-03 02:28:54 +0100 | |
commit | b5d33b0370ba8430bb8dbede7fef377ac2a67667 (patch) | |
tree | 8feb257164b2f121cfc7464b0c0c645e96c0008e /lazy | |
parent | 459d32b98476b05da5e7548c67c28c147b107736 (diff) | |
download | iced-b5d33b0370ba8430bb8dbede7fef377ac2a67667.tar.gz iced-b5d33b0370ba8430bb8dbede7fef377ac2a67667.tar.bz2 iced-b5d33b0370ba8430bb8dbede7fef377ac2a67667.zip |
Diff children only when hash differs in `lazy::Cached`
Diffstat (limited to 'lazy')
-rw-r--r-- | lazy/src/cached.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lazy/src/cached.rs b/lazy/src/cached.rs index 184ec9e7..a2a519c0 100644 --- a/lazy/src/cached.rs +++ b/lazy/src/cached.rs @@ -97,12 +97,14 @@ where let element = (self.view)().into(); current.element = Rc::new(RefCell::new(element)); - } - (*self.element.borrow_mut()) = Some(current.element.clone()); - tree.diff_children(std::slice::from_ref( - &self.element.borrow().as_ref().unwrap().borrow().as_widget(), - )); + (*self.element.borrow_mut()) = Some(current.element.clone()); + tree.diff_children(std::slice::from_ref( + &self.element.borrow().as_ref().unwrap().borrow().as_widget(), + )); + } else { + (*self.element.borrow_mut()) = Some(current.element.clone()); + } } fn width(&self) -> Length { |