diff options
Diffstat (limited to 'native/src/overlay/menu.rs')
-rw-r--r-- | native/src/overlay/menu.rs | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/native/src/overlay/menu.rs b/native/src/overlay/menu.rs index 979a13c3..fc3f52b2 100644 --- a/native/src/overlay/menu.rs +++ b/native/src/overlay/menu.rs @@ -174,9 +174,9 @@ where Self { container, - width: width, + width, target_height, - style: style, + style, } } } @@ -230,7 +230,7 @@ where shell: &mut Shell<'_, Message>, ) -> event::Status { self.container.on_event( - event.clone(), + event, layout, cursor_position, renderer, @@ -326,7 +326,8 @@ where use std::f32; let limits = limits.width(Length::Fill).height(Length::Shrink); - let text_size = self.text_size.unwrap_or(renderer.default_size()); + let text_size = + self.text_size.unwrap_or_else(|| renderer.default_size()); let size = { let intrinsic = Size::new( @@ -366,8 +367,9 @@ where let bounds = layout.bounds(); if bounds.contains(cursor_position) { - let text_size = - self.text_size.unwrap_or(renderer.default_size()); + let text_size = self + .text_size + .unwrap_or_else(|| renderer.default_size()); *self.hovered_option = Some( ((cursor_position.y - bounds.y) @@ -380,8 +382,9 @@ where let bounds = layout.bounds(); if bounds.contains(cursor_position) { - let text_size = - self.text_size.unwrap_or(renderer.default_size()); + let text_size = self + .text_size + .unwrap_or_else(|| renderer.default_size()); *self.hovered_option = Some( ((cursor_position.y - bounds.y) @@ -430,7 +433,8 @@ where let appearance = theme.appearance(self.style); let bounds = layout.bounds(); - let text_size = self.text_size.unwrap_or(renderer.default_size()); + let text_size = + self.text_size.unwrap_or_else(|| renderer.default_size()); let option_height = (text_size + self.padding.vertical()) as usize; let offset = viewport.y - bounds.y; @@ -485,15 +489,15 @@ where } } -impl<'a, T, Message, Renderer> Into<Element<'a, Message, Renderer>> - for List<'a, T, Renderer> +impl<'a, T, Message, Renderer> From<List<'a, T, Renderer>> + for Element<'a, Message, Renderer> where T: ToString + Clone, Message: 'a, Renderer: 'a + text::Renderer, Renderer::Theme: StyleSheet, { - fn into(self) -> Element<'a, Message, Renderer> { - Element::new(self) + fn from(list: List<'a, T, Renderer>) -> Self { + Element::new(list) } } |