Allow &mut self in overlay
This commit is contained in:
parent
67420cb1e4
commit
f1ada7a803
17 changed files with 73 additions and 83 deletions
|
|
@ -235,18 +235,20 @@ where
|
|||
}
|
||||
|
||||
fn overlay<'b>(
|
||||
&'b self,
|
||||
&'b mut self,
|
||||
tree: &'b mut Tree,
|
||||
layout: Layout<'_>,
|
||||
renderer: &Renderer,
|
||||
) -> Option<overlay::Element<'b, Message, Renderer>> {
|
||||
use std::ops::DerefMut;
|
||||
|
||||
let state = tree.state.downcast_ref::<State>();
|
||||
|
||||
let overlay = OverlayBuilder {
|
||||
content: self.content.borrow_mut(),
|
||||
tree: state.tree.borrow_mut(),
|
||||
types: PhantomData,
|
||||
overlay_builder: |content, tree| {
|
||||
overlay_builder: |content: &mut RefMut<Content<_, _>>, tree| {
|
||||
content.update(
|
||||
tree,
|
||||
renderer,
|
||||
|
|
@ -254,16 +256,18 @@ where
|
|||
&self.view,
|
||||
);
|
||||
|
||||
let Content {
|
||||
element, layout, ..
|
||||
} = content.deref_mut();
|
||||
|
||||
let content_layout = Layout::with_offset(
|
||||
layout.position() - Point::ORIGIN,
|
||||
&content.layout,
|
||||
layout.bounds().position() - Point::ORIGIN,
|
||||
layout,
|
||||
);
|
||||
|
||||
content.element.as_widget().overlay(
|
||||
tree,
|
||||
content_layout,
|
||||
renderer,
|
||||
)
|
||||
element
|
||||
.as_widget_mut()
|
||||
.overlay(tree, content_layout, renderer)
|
||||
},
|
||||
}
|
||||
.build();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue