summaryrefslogtreecommitdiffstats
path: root/widget/src/container.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-12-01 16:04:27 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-12-01 16:04:27 +0100
commit936d480267578d7e80675e78ec1880aaaaab72d6 (patch)
tree70719766c67dd6a09630c5a4231e952a3200bea1 /widget/src/container.rs
parent99899d49cc93cdec3832f7b5ecad867fdd421e07 (diff)
downloadiced-936d480267578d7e80675e78ec1880aaaaab72d6.tar.gz
iced-936d480267578d7e80675e78ec1880aaaaab72d6.tar.bz2
iced-936d480267578d7e80675e78ec1880aaaaab72d6.zip
Clip text to `viewport` bounds instead of layout bounds
Diffstat (limited to '')
-rw-r--r--widget/src/container.rs32
1 files changed, 17 insertions, 15 deletions
diff --git a/widget/src/container.rs b/widget/src/container.rs
index ee7a4965..5dd7705b 100644
--- a/widget/src/container.rs
+++ b/widget/src/container.rs
@@ -252,21 +252,23 @@ where
) {
let style = theme.appearance(&self.style);
- draw_background(renderer, &style, layout.bounds());
-
- self.content.as_widget().draw(
- tree,
- renderer,
- theme,
- &renderer::Style {
- text_color: style
- .text_color
- .unwrap_or(renderer_style.text_color),
- },
- layout.children().next().unwrap(),
- cursor,
- viewport,
- );
+ if let Some(viewport) = layout.bounds().intersection(viewport) {
+ draw_background(renderer, &style, layout.bounds());
+
+ self.content.as_widget().draw(
+ tree,
+ renderer,
+ theme,
+ &renderer::Style {
+ text_color: style
+ .text_color
+ .unwrap_or(renderer_style.text_color),
+ },
+ layout.children().next().unwrap(),
+ cursor,
+ &viewport,
+ );
+ }
}
fn overlay<'b>(