From 8fee1950c6bce0e35eed1a7442eed04c9653e0f3 Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Mon, 27 Oct 2014 14:51:44 +1000 Subject: [PATCH] Add support for mouse wheel events on x11. --- src/x11/window/mod.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/x11/window/mod.rs b/src/x11/window/mod.rs index 99cbf9dc..a1cf0cc9 100644 --- a/src/x11/window/mod.rs +++ b/src/x11/window/mod.rs @@ -414,8 +414,8 @@ impl Window { }, ffi::ButtonPress | ffi::ButtonRelease => { - use {MouseInput, Pressed, Released}; - use {LeftMouseButton, RightMouseButton, MiddleMouseButton, OtherMouseButton}; + use {MouseInput, MouseWheel, Pressed, Released}; + use {LeftMouseButton, RightMouseButton, MiddleMouseButton}; let event: &ffi::XButtonEvent = unsafe { mem::transmute(&xev) }; let state = if xev.type_ == ffi::ButtonPress { Pressed } else { Released }; @@ -424,8 +424,14 @@ impl Window { ffi::Button1 => Some(LeftMouseButton), ffi::Button2 => Some(MiddleMouseButton), ffi::Button3 => Some(RightMouseButton), - ffi::Button4 => Some(OtherMouseButton(4)), - ffi::Button5 => Some(OtherMouseButton(5)), + ffi::Button4 => { + events.push(MouseWheel(1)); + None + } + ffi::Button5 => { + events.push(MouseWheel(-1)); + None + } _ => None };