summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--graphics/src/widget/pick_list.rs6
-rw-r--r--native/src/widget/pick_list.rs4
2 files changed, 6 insertions, 4 deletions
diff --git a/graphics/src/widget/pick_list.rs b/graphics/src/widget/pick_list.rs
index 01283bd5..88a590b5 100644
--- a/graphics/src/widget/pick_list.rs
+++ b/graphics/src/widget/pick_list.rs
@@ -31,7 +31,7 @@ where
bounds: Rectangle,
cursor_position: Point,
selected: Option<String>,
- placeholder: Option<String>,
+ placeholder: Option<&str>,
padding: Padding,
text_size: u16,
font: Font,
@@ -70,7 +70,9 @@ where
(
Primitive::Group {
- primitives: if let Some(label) = selected.or(placeholder) {
+ primitives: if let Some(label) =
+ selected.or_else(|| placeholder.map(str::to_string))
+ {
let label = Primitive::Text {
content: label,
size: f32::from(text_size),
diff --git a/native/src/widget/pick_list.rs b/native/src/widget/pick_list.rs
index 21c0c153..4f4e751e 100644
--- a/native/src/widget/pick_list.rs
+++ b/native/src/widget/pick_list.rs
@@ -285,7 +285,7 @@ where
layout.bounds(),
cursor_position,
self.selected.as_ref().map(ToString::to_string),
- self.placeholder.clone(),
+ self.placeholder.as_ref().map(String::as_str),
self.padding,
self.text_size.unwrap_or(renderer.default_size()),
self.font,
@@ -346,7 +346,7 @@ pub trait Renderer: text::Renderer + menu::Renderer {
bounds: Rectangle,
cursor_position: Point,
selected: Option<String>,
- placeholder: Option<String>,
+ placeholder: Option<&str>,
padding: Padding,
text_size: u16,
font: Self::Font,