mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-23 22:01:31 +11:00
Add mouse buttons press/release events for X11
This commit is contained in:
parent
0d45c7fcb4
commit
59b4d23d58
|
@ -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;
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_ => ()
|
||||
|
|
Loading…
Reference in a new issue