Allow Overlay::overlay to borrow Layout

This commit is contained in:
Héctor Ramón Jiménez 2025-05-15 16:32:49 +02:00
parent 346ce61b5d
commit 6155100767
No known key found for this signature in database
GPG key ID: 4C07CEC81AFA161F
5 changed files with 11 additions and 8 deletions

View file

@ -82,7 +82,7 @@ where
/// Returns the nested overlay of the [`Overlay`], if there is any.
fn overlay<'a>(
&'a mut self,
_layout: Layout<'_>,
_layout: Layout<'a>,
_renderer: &Renderer,
) -> Option<Element<'a, Message, Theme, Renderer>> {
None

View file

@ -130,7 +130,7 @@ where
fn overlay<'a>(
&'a mut self,
layout: Layout<'_>,
layout: Layout<'a>,
renderer: &Renderer,
) -> Option<Element<'a, B, Theme, Renderer>> {
self.content

View file

@ -138,7 +138,7 @@ where
fn overlay<'a>(
&'a mut self,
layout: Layout<'_>,
layout: Layout<'a>,
renderer: &Renderer,
) -> Option<overlay::Element<'a, Message, Theme, Renderer>> {
let children = self

View file

@ -42,12 +42,15 @@ where
let overlay = element.as_overlay_mut();
let node = overlay.layout(renderer, bounds);
if let Some(mut nested) =
overlay.overlay(Layout::new(&node), renderer)
{
let nested_node = overlay
.overlay(Layout::new(&node), renderer)
.as_mut()
.map(|nested| recurse(nested, renderer, bounds));
if let Some(nested_node) = nested_node {
layout::Node::with_children(
node.size(),
vec![node, recurse(&mut nested, renderer, bounds)],
vec![node, nested_node],
)
} else {
layout::Node::with_children(node.size(), vec![node])

View file

@ -257,7 +257,7 @@ where
fn overlay<'b>(
&'b mut self,
layout: Layout<'_>,
layout: Layout<'b>,
renderer: &Renderer,
) -> Option<overlay::Element<'b, Message, Theme, Renderer>>
{