Diff children only when hash differs in lazy::Cached

This commit is contained in:
Héctor Ramón Jiménez 2022-11-03 02:28:54 +01:00
parent 459d32b984
commit b5d33b0370
No known key found for this signature in database
GPG key ID: 140CC052C94F138E

View file

@ -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 {