From 6e70d9ad83432b45e6bcfd022ba31e192ad99669 Mon Sep 17 00:00:00 2001 From: Cory Forsstrom Date: Mon, 25 Apr 2022 09:01:04 -0700 Subject: Clip bounds to prevent text overflow --- native/src/widget/pick_list.rs | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'native/src/widget') diff --git a/native/src/widget/pick_list.rs b/native/src/widget/pick_list.rs index 998b9b3c..4f00c96e 100644 --- a/native/src/widget/pick_list.rs +++ b/native/src/widget/pick_list.rs @@ -402,22 +402,24 @@ pub fn draw( if let Some(label) = label.as_ref().map(String::as_str).or_else(|| placeholder) { - renderer.fill_text(Text { - content: label, - size: f32::from(text_size.unwrap_or(renderer.default_size())), - font: font.clone(), - color: is_selected - .then(|| style.text_color) - .unwrap_or(style.placeholder_color), - bounds: Rectangle { - x: bounds.x + f32::from(padding.left), - y: bounds.center_y(), - width: f32::INFINITY, - ..bounds - }, - horizontal_alignment: alignment::Horizontal::Left, - vertical_alignment: alignment::Vertical::Center, - }) + renderer.with_layer(bounds, |layer| { + layer.fill_text(Text { + content: label, + size: f32::from(text_size.unwrap_or(layer.default_size())), + font: font.clone(), + color: is_selected + .then(|| style.text_color) + .unwrap_or(style.placeholder_color), + bounds: Rectangle { + x: bounds.x + f32::from(padding.left), + y: bounds.center_y(), + width: f32::INFINITY, + ..bounds + }, + horizontal_alignment: alignment::Horizontal::Left, + vertical_alignment: alignment::Vertical::Center, + }) + }); } } -- cgit