diff options
| author | 2025-01-26 04:27:15 +0100 | |
|---|---|---|
| committer | 2025-01-26 04:32:04 +0100 | |
| commit | d886f395213691a8ba1b2aa11d7806666738f1f1 (patch) | |
| tree | 3cd24d959f1d8122242fd1d4ac70b6d94b561bf8 /widget/src | |
| parent | 3428a3d2afb766c264453a58e15d33953d438238 (diff) | |
| download | iced-d886f395213691a8ba1b2aa11d7806666738f1f1.tar.gz iced-d886f395213691a8ba1b2aa11d7806666738f1f1.tar.bz2 iced-d886f395213691a8ba1b2aa11d7806666738f1f1.zip | |
Fix `Image` not respecting `viewport` bounds
Diffstat (limited to '')
| -rw-r--r-- | widget/src/image.rs | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/widget/src/image.rs b/widget/src/image.rs index c8f2a620..f5a9c7f3 100644 --- a/widget/src/image.rs +++ b/widget/src/image.rs @@ -167,6 +167,7 @@ where  pub fn draw<Renderer, Handle>(      renderer: &mut Renderer,      layout: Layout<'_>, +    viewport: &Rectangle,      handle: &Handle,      content_fit: ContentFit,      filter_method: FilterMethod, @@ -218,7 +219,9 @@ pub fn draw<Renderer, Handle>(      if adjusted_fit.width > bounds.width || adjusted_fit.height > bounds.height      { -        renderer.with_layer(bounds, render); +        if let Some(bounds) = bounds.intersection(viewport) { +            renderer.with_layer(bounds, render); +        }      } else {          render(renderer);      } @@ -262,11 +265,12 @@ where          _style: &renderer::Style,          layout: Layout<'_>,          _cursor: mouse::Cursor, -        _viewport: &Rectangle, +        viewport: &Rectangle,      ) {          draw(              renderer,              layout, +            viewport,              &self.handle,              self.content_fit,              self.filter_method, | 
