summaryrefslogtreecommitdiffstats
path: root/widget/src/row.rs
diff options
context:
space:
mode:
Diffstat (limited to 'widget/src/row.rs')
-rw-r--r--widget/src/row.rs19
1 files changed, 8 insertions, 11 deletions
diff --git a/widget/src/row.rs b/widget/src/row.rs
index 75d5fb40..9c0fa97e 100644
--- a/widget/src/row.rs
+++ b/widget/src/row.rs
@@ -316,24 +316,21 @@ where
viewport: &Rectangle,
) {
if let Some(clipped_viewport) = layout.bounds().intersection(viewport) {
+ let viewport = if self.clip {
+ &clipped_viewport
+ } else {
+ viewport
+ };
+
for ((child, state), layout) in self
.children
.iter()
.zip(&tree.children)
.zip(layout.children())
+ .filter(|(_, layout)| layout.bounds().intersects(viewport))
{
child.as_widget().draw(
- state,
- renderer,
- theme,
- style,
- layout,
- cursor,
- if self.clip {
- &clipped_viewport
- } else {
- viewport
- },
+ state, renderer, theme, style, layout, cursor, viewport,
);
}
}