diff options
author | 2020-12-17 05:19:14 +0100 | |
---|---|---|
committer | 2020-12-17 05:19:14 +0100 | |
commit | 89e604d1602251f1ec16521fd714d60807217df7 (patch) | |
tree | 64d2f7683e9b465b4e85d8e12a5f01f354654fe1 /native/src/widget/slider.rs | |
parent | a42b3c6998274e75fd10f5ff3cecbdb37b9e3895 (diff) | |
parent | 277ae74d6817ee6192b5f7a44de19dcbdf8d58f7 (diff) | |
download | iced-89e604d1602251f1ec16521fd714d60807217df7.tar.gz iced-89e604d1602251f1ec16521fd714d60807217df7.tar.bz2 iced-89e604d1602251f1ec16521fd714d60807217df7.zip |
Merge pull request #57 from simlay/ios-support-wip
Touch support
Diffstat (limited to '')
-rw-r--r-- | native/src/widget/slider.rs | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs index ff39b816..010c6e53 100644 --- a/native/src/widget/slider.rs +++ b/native/src/widget/slider.rs @@ -4,6 +4,7 @@ use crate::event::{self, Event}; use crate::layout; use crate::mouse; +use crate::touch; use crate::{ Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, }; @@ -207,34 +208,35 @@ where }; match event { - Event::Mouse(mouse_event) => match mouse_event { - mouse::Event::ButtonPressed(mouse::Button::Left) => { - if layout.bounds().contains(cursor_position) { - change(); - self.state.is_dragging = true; + Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) + | Event::Touch(touch::Event::FingerPressed { .. }) => { + if layout.bounds().contains(cursor_position) { + change(); + self.state.is_dragging = true; - return event::Status::Captured; - } + return event::Status::Captured; } - mouse::Event::ButtonReleased(mouse::Button::Left) => { - if self.state.is_dragging { - if let Some(on_release) = self.on_release.clone() { - messages.push(on_release); - } - self.state.is_dragging = false; - - return event::Status::Captured; + } + Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)) + | Event::Touch(touch::Event::FingerLifted { .. }) + | Event::Touch(touch::Event::FingerLost { .. }) => { + if self.state.is_dragging { + if let Some(on_release) = self.on_release.clone() { + messages.push(on_release); } + self.state.is_dragging = false; + + return event::Status::Captured; } - mouse::Event::CursorMoved { .. } => { - if self.state.is_dragging { - change(); + } + Event::Mouse(mouse::Event::CursorMoved { .. }) + | Event::Touch(touch::Event::FingerMoved { .. }) => { + if self.state.is_dragging { + change(); - return event::Status::Captured; - } + return event::Status::Captured; } - _ => {} - }, + } _ => {} } |