Implement overlay ordering for Image::float

This commit is contained in:
Héctor Ramón Jiménez 2025-04-25 11:20:16 +02:00
parent 7f1dcec391
commit e64c58d032
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
8 changed files with 416 additions and 143 deletions

View file

@ -198,7 +198,7 @@ where
renderer: &Renderer,
bounds: Size,
) -> layout::Node {
self.content.layout(renderer, bounds)
self.content.as_overlay_mut().layout(renderer, bounds)
}
fn draw(
@ -209,7 +209,7 @@ where
layout: Layout<'_>,
cursor: mouse::Cursor,
) {
self.content.draw(
self.content.as_overlay().draw(
renderer,
&(self.to_theme)(theme),
style,
@ -228,6 +228,7 @@ where
shell: &mut Shell<'_, Message>,
) {
self.content
.as_overlay_mut()
.update(event, layout, cursor, renderer, clipboard, shell);
}
@ -237,7 +238,9 @@ where
renderer: &Renderer,
operation: &mut dyn Operation,
) {
self.content.operate(layout, renderer, operation);
self.content
.as_overlay_mut()
.operate(layout, renderer, operation);
}
fn mouse_interaction(
@ -248,6 +251,7 @@ where
renderer: &Renderer,
) -> mouse::Interaction {
self.content
.as_overlay()
.mouse_interaction(layout, cursor, viewport, renderer)
}
@ -257,7 +261,11 @@ where
renderer: &Renderer,
cursor_position: Point,
) -> bool {
self.content.is_over(layout, renderer, cursor_position)
self.content.as_overlay().is_over(
layout,
renderer,
cursor_position,
)
}
fn overlay<'b>(
@ -267,6 +275,7 @@ where
) -> Option<overlay::Element<'b, Message, Theme, Renderer>>
{
self.content
.as_overlay_mut()
.overlay(layout, renderer)
.map(|content| Overlay {
to_theme: &self.to_theme,