diff options
Diffstat (limited to 'native/src')
| -rw-r--r-- | native/src/widget/image.rs | 4 | ||||
| -rw-r--r-- | native/src/widget/image/viewer.rs | 18 | 
2 files changed, 17 insertions, 5 deletions
| diff --git a/native/src/widget/image.rs b/native/src/widget/image.rs index b61904f4..b87c0aab 100644 --- a/native/src/widget/image.rs +++ b/native/src/widget/image.rs @@ -98,7 +98,7 @@ where          _cursor_position: Point,          _viewport: &Rectangle,      ) { -        renderer.draw(self.handle.clone(), layout); +        renderer.draw(self.handle.clone(), layout.bounds());      }      fn hash_layout(&self, state: &mut Hasher) { @@ -228,7 +228,7 @@ pub trait Renderer: crate::Renderer {      fn dimensions(&self, handle: &Handle) -> (u32, u32);      // Draws an [`Image`]. -    fn draw(&mut self, handle: Handle, layout: Layout<'_>); +    fn draw(&mut self, handle: Handle, bounds: Rectangle);  }  impl<'a, Message, Renderer> From<Image> for Element<'a, Message, Renderer> diff --git a/native/src/widget/image/viewer.rs b/native/src/widget/image/viewer.rs index 63087f5f..3e8430f3 100644 --- a/native/src/widget/image/viewer.rs +++ b/native/src/widget/image/viewer.rs @@ -284,9 +284,9 @@ where      fn draw(          &self,          renderer: &mut Renderer, -        style: &renderer::Style, +        _style: &renderer::Style,          layout: Layout<'_>, -        cursor_position: Point, +        _cursor_position: Point,          _viewport: &Rectangle,      ) {          let bounds = layout.bounds(); @@ -302,7 +302,19 @@ where              image_top_left - self.state.offset(bounds, image_size)          }; -        let is_mouse_over = bounds.contains(cursor_position); +        renderer.with_layer(bounds, |renderer| { +            renderer.with_translation(translation, |renderer| { +                image::Renderer::draw( +                    renderer, +                    self.handle.clone(), +                    Rectangle { +                        x: bounds.x, +                        y: bounds.y, +                        ..Rectangle::with_size(image_size) +                    }, +                ) +            }); +        });      }      fn hash_layout(&self, state: &mut Hasher) { | 
