summaryrefslogtreecommitdiffstats
path: root/native/src/overlay/element.rs
diff options
context:
space:
mode:
Diffstat (limited to 'native/src/overlay/element.rs')
-rw-r--r--native/src/overlay/element.rs20
1 files changed, 17 insertions, 3 deletions
diff --git a/native/src/overlay/element.rs b/native/src/overlay/element.rs
index b60881e3..b919c221 100644
--- a/native/src/overlay/element.rs
+++ b/native/src/overlay/element.rs
@@ -4,6 +4,7 @@ use crate::event::{self, Event};
use crate::layout;
use crate::mouse;
use crate::renderer;
+use crate::widget;
use crate::{Clipboard, Layout, Point, Rectangle, Shell, Size, Vector};
/// A generic [`Overlay`].
@@ -41,7 +42,7 @@ where
where
Message: 'a,
Renderer: 'a,
- B: 'static,
+ B: 'a,
{
Element {
position: self.position,
@@ -94,11 +95,22 @@ where
pub fn draw(
&self,
renderer: &mut Renderer,
+ theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
) {
- self.overlay.draw(renderer, style, layout, cursor_position)
+ self.overlay
+ .draw(renderer, theme, style, layout, cursor_position)
+ }
+
+ /// Applies an [`Operation`] to the [`Element`].
+ pub fn operate(
+ &self,
+ layout: Layout<'_>,
+ operation: &mut dyn widget::Operation<Message>,
+ ) {
+ self.overlay.operate(layout, operation);
}
}
@@ -173,10 +185,12 @@ where
fn draw(
&self,
renderer: &mut Renderer,
+ theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
) {
- self.content.draw(renderer, style, layout, cursor_position)
+ self.content
+ .draw(renderer, theme, style, layout, cursor_position)
}
}