aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPierre Krieger <pierre.krieger1708@gmail.com>2014-07-31 17:33:46 +0200
committerPierre Krieger <pierre.krieger1708@gmail.com>2014-07-31 17:33:46 +0200
commit59b4d23d58f804e0d9ae05cf80da67784680d186 (patch)
tree916586bddab3a83e76b968990f2257d28336bc27 /src
parent0d45c7fcb491fc9d39b3b3ddd586741c277fcced (diff)
downloadglutin-59b4d23d58f804e0d9ae05cf80da67784680d186.tar.gz
glutin-59b4d23d58f804e0d9ae05cf80da67784680d186.zip
Add mouse buttons press/release events for X11
Diffstat (limited to 'src')
-rw-r--r--src/x11/ffi.rs6
-rw-r--r--src/x11/mod.rs21
2 files changed, 26 insertions, 1 deletions
diff --git a/src/x11/ffi.rs b/src/x11/ffi.rs
index f73d408..2c94820 100644
--- a/src/x11/ffi.rs
+++ b/src/x11/ffi.rs
@@ -30,6 +30,12 @@ pub type XID = uint;
pub static AllocNone: libc::c_int = 0;
pub static AllocAll: libc::c_int = 1;
+pub static Button1: libc::c_uint = 1;
+pub static Button2: libc::c_uint = 2;
+pub static Button3: libc::c_uint = 3;
+pub static Button4: libc::c_uint = 4;
+pub static Button5: libc::c_uint = 5;
+
pub static InputOutput: libc::c_uint = 1;
pub static InputOnly: libc::c_uint = 2;
diff --git a/src/x11/mod.rs b/src/x11/mod.rs
index 4bd186f..c2b2044 100644
--- a/src/x11/mod.rs
+++ b/src/x11/mod.rs
@@ -243,8 +243,27 @@ impl Window {
ffi::ButtonPress | ffi::ButtonRelease => {
use {Pressed, Released};
+ use events;
let event: &ffi::XButtonEvent = unsafe { mem::transmute(&xev) };
- //events.push(CursorPositionChanged(event.x as uint, event.y as uint));
+
+ let elem = match event.button {
+ ffi::Button1 => Some(events::Button1),
+ ffi::Button2 => Some(events::Button2),
+ ffi::Button3 => Some(events::Button3),
+ ffi::Button4 => Some(events::Button4),
+ ffi::Button5 => Some(events::Button5),
+ _ => None
+ };
+
+ if elem.is_some() {
+ let elem = elem.unwrap();
+
+ if xev.type_ == ffi::ButtonPress {
+ events.push(Pressed(elem));
+ } else if xev.type_ == ffi::ButtonRelease {
+ events.push(Released(elem));
+ }
+ }
},
_ => ()