Merge branch 'ios-support-wip' into feature/touch-support
This commit is contained in:
commit
09110a93b0
11 changed files with 186 additions and 41 deletions
|
|
@ -4,6 +4,7 @@
|
|||
use crate::event::{self, Event};
|
||||
use crate::layout;
|
||||
use crate::mouse;
|
||||
use crate::touch::{self, Touch};
|
||||
use crate::{
|
||||
Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget,
|
||||
};
|
||||
|
|
@ -207,34 +208,43 @@ 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 {
|
||||
phase: touch::Phase::Started,
|
||||
..
|
||||
}) => {
|
||||
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;
|
||||
}
|
||||
Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left))
|
||||
| Event::Touch(Touch {
|
||||
phase: touch::Phase::Ended,
|
||||
..
|
||||
}) => {
|
||||
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;
|
||||
}
|
||||
return event::Status::Captured;
|
||||
}
|
||||
mouse::Event::CursorMoved { .. } => {
|
||||
if self.state.is_dragging {
|
||||
change();
|
||||
}
|
||||
Event::Mouse(mouse::Event::CursorMoved { .. })
|
||||
| Event::Touch(Touch {
|
||||
phase: touch::Phase::Moved,
|
||||
..
|
||||
}) => {
|
||||
if self.state.is_dragging {
|
||||
change();
|
||||
|
||||
return event::Status::Captured;
|
||||
}
|
||||
return event::Status::Captured;
|
||||
}
|
||||
_ => {}
|
||||
},
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue