summaryrefslogtreecommitdiffstats
path: root/lazy
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-11-03 02:28:54 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-11-03 02:28:54 +0100
commitb5d33b0370ba8430bb8dbede7fef377ac2a67667 (patch)
tree8feb257164b2f121cfc7464b0c0c645e96c0008e /lazy
parent459d32b98476b05da5e7548c67c28c147b107736 (diff)
downloadiced-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.rs12
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 {