diff options
author | 2024-10-02 17:21:22 +0200 | |
---|---|---|
committer | 2024-10-02 17:21:22 +0200 | |
commit | d5f278b31de1ba2d3df6cc8e1e617649e1f21869 (patch) | |
tree | ed73bb9cc0b64a862ea7ab764f8bff31ef23b630 /widget | |
parent | 5ee82b2ef0dc6ec1dfec1827b6687cdacf871ce2 (diff) | |
parent | d40aa6400d7e8692516c2651687790a00deb727e (diff) | |
download | iced-d5f278b31de1ba2d3df6cc8e1e617649e1f21869.tar.gz iced-d5f278b31de1ba2d3df6cc8e1e617649e1f21869.tar.bz2 iced-d5f278b31de1ba2d3df6cc8e1e617649e1f21869.zip |
Merge pull request #2611 from tarkah/fix/ignore-out-of-viewport-text
Don't fill out of viewport text
Diffstat (limited to 'widget')
-rw-r--r-- | widget/src/column.rs | 19 | ||||
-rw-r--r-- | widget/src/row.rs | 19 |
2 files changed, 16 insertions, 22 deletions
diff --git a/widget/src/column.rs b/widget/src/column.rs index fc4653b9..213f68fc 100644 --- a/widget/src/column.rs +++ b/widget/src/column.rs @@ -320,24 +320,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, ); } } 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, ); } } |