diff options
| author | tomaka <pierre.krieger1708@gmail.com> | 2015-09-22 19:55:43 +0200 | 
|---|---|---|
| committer | tomaka <pierre.krieger1708@gmail.com> | 2015-09-22 19:55:43 +0200 | 
| commit | 34d2c7517df0b1e8047e1b60dcee6178164d2126 (patch) | |
| tree | 3f0d1d3b6373b54cdf71d368dac6e60a02886419 /src/api/android | |
| parent | 48f3962a01278f13f5af5d3aa14bf7a32c5c8326 (diff) | |
| parent | 1827910927833b53cb183032a10d5a3c454b7852 (diff) | |
| download | glutin-34d2c7517df0b1e8047e1b60dcee6178164d2126.tar.gz glutin-34d2c7517df0b1e8047e1b60dcee6178164d2126.zip  | |
Merge pull request #610 from mbrubeck/android-touch
Support multi-touch events on Android
Diffstat (limited to 'src/api/android')
| -rw-r--r-- | src/api/android/mod.rs | 23 | 
1 files changed, 13 insertions, 10 deletions
diff --git a/src/api/android/mod.rs b/src/api/android/mod.rs index be5a79f..12d0bea 100644 --- a/src/api/android/mod.rs +++ b/src/api/android/mod.rs @@ -8,8 +8,7 @@ use std::sync::mpsc::{Receiver, channel};  use {CreationError, Event, MouseCursor};  use CreationError::OsError;  use events::ElementState::{Pressed, Released}; -use events::Event::{MouseInput, MouseMoved}; -use events::MouseButton; +use events::{Touch, TouchPhase};  use std::collections::VecDeque; @@ -70,15 +69,19 @@ impl<'a> Iterator for PollEventsIterator<'a> {      fn next(&mut self) -> Option<Event> {          match self.window.event_rx.try_recv() { -            Ok(event) => { -                match event { -                    android_glue::Event::EventDown => Some(MouseInput(Pressed, MouseButton::Left)), -                    android_glue::Event::EventUp => Some(MouseInput(Released, MouseButton::Left)), -                    android_glue::Event::EventMove(x, y) => Some(MouseMoved((x as i32, y as i32))), -                    _ => None, -                } +            Ok(android_glue::Event::EventMotion(motion)) => { +                Some(Event::Touch(Touch { +                    phase: match motion.action { +                        android_glue::MotionAction::Down => TouchPhase::Started, +                        android_glue::MotionAction::Move => TouchPhase::Moved, +                        android_glue::MotionAction::Up => TouchPhase::Ended, +                        android_glue::MotionAction::Cancel => TouchPhase::Cancelled, +                    }, +                    location: (motion.x as f64, motion.y as f64), +                    id: motion.pointer_id as u64, +                }))              } -            Err(_) => { +            _ => {                  None              }          }  | 
