summaryrefslogtreecommitdiffstats
path: root/widget/src/column.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--widget/src/column.rs20
1 files changed, 11 insertions, 9 deletions
diff --git a/widget/src/column.rs b/widget/src/column.rs
index 42e90ac1..abb522be 100644
--- a/widget/src/column.rs
+++ b/widget/src/column.rs
@@ -224,15 +224,17 @@ where
cursor: mouse::Cursor,
viewport: &Rectangle,
) {
- for ((child, state), layout) in self
- .children
- .iter()
- .zip(&tree.children)
- .zip(layout.children())
- {
- child
- .as_widget()
- .draw(state, renderer, theme, style, layout, cursor, viewport);
+ if let Some(viewport) = layout.bounds().intersection(viewport) {
+ for ((child, state), layout) in self
+ .children
+ .iter()
+ .zip(&tree.children)
+ .zip(layout.children())
+ {
+ child.as_widget().draw(
+ state, renderer, theme, style, layout, cursor, &viewport,
+ );
+ }
}
}