Make Widget::diff mutable
This commit is contained in:
parent
31bc6d48cd
commit
497ebcd0c3
31 changed files with 114 additions and 81 deletions
|
|
@ -147,13 +147,13 @@ where
|
|||
Renderer: renderer::Renderer,
|
||||
{
|
||||
fn diff_self(&self) {
|
||||
self.with_element(|element| {
|
||||
self.with_element_mut(|element| {
|
||||
self.tree
|
||||
.borrow_mut()
|
||||
.borrow_mut()
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.diff_children(std::slice::from_ref(&element));
|
||||
.diff_children(std::slice::from_mut(element));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -279,7 +279,7 @@ where
|
|||
vec![]
|
||||
}
|
||||
|
||||
fn diff(&self, tree: &mut Tree) {
|
||||
fn diff(&mut self, tree: &mut Tree) {
|
||||
let tree = tree.state.downcast_ref::<Rc<RefCell<Option<Tree>>>>();
|
||||
*self.tree.borrow_mut() = tree.clone();
|
||||
self.rebuild_element_if_necessary();
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ where
|
|||
let size = limits.max();
|
||||
|
||||
self.content = (self.view)(size);
|
||||
state.tree.diff(&self.content);
|
||||
state.tree.diff(&mut self.content);
|
||||
|
||||
self.content.as_widget_mut().layout(
|
||||
&mut state.tree,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue