diff options
author | 2021-01-11 19:31:34 +0100 | |
---|---|---|
committer | 2021-01-11 19:31:34 +0100 | |
commit | c7f6b2a5c7778cdbd39e327bfac196014140902c (patch) | |
tree | e28f47637d41ea4181050b4c5199cc31fd725fb5 | |
parent | e7344d03b467e87b3e50fa8d7ecd74994b46a4e6 (diff) | |
download | iced-c7f6b2a5c7778cdbd39e327bfac196014140902c.tar.gz iced-c7f6b2a5c7778cdbd39e327bfac196014140902c.tar.bz2 iced-c7f6b2a5c7778cdbd39e327bfac196014140902c.zip |
Capture relevant events in `image::Viewer`
-rw-r--r-- | native/src/widget/image/viewer.rs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/native/src/widget/image/viewer.rs b/native/src/widget/image/viewer.rs index 4ec3faf6..5f0dda4e 100644 --- a/native/src/widget/image/viewer.rs +++ b/native/src/widget/image/viewer.rs @@ -209,15 +209,23 @@ where } } } + + event::Status::Captured } Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) if is_mouse_over => { self.state.cursor_grabbed_at = Some(cursor_position); self.state.starting_offset = self.state.current_offset; + + event::Status::Captured } - Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)) => { - self.state.cursor_grabbed_at = None + Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)) + if self.state.cursor_grabbed_at.is_some() => + { + self.state.cursor_grabbed_at = None; + + event::Status::Captured } Event::Mouse(mouse::Event::CursorMoved { position }) => { if let Some(origin) = self.state.cursor_grabbed_at { @@ -251,12 +259,14 @@ where }; self.state.current_offset = Vector::new(x, y); + + event::Status::Captured + } else { + event::Status::Ignored } } - _ => {} + _ => event::Status::Ignored, } - - event::Status::Ignored } fn draw( |