diff options
author | Chris Salch <emeraldd.chris@gmail.com> | 2008-08-06 22:08:13 -0500 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2008-08-07 16:04:31 +0930 |
commit | a9d72b40fbe178fa4fbb9d0e7c02dc6c5250969a (patch) | |
tree | 2eccade8fe136a632e5be72332b2145e5af5e6cb /src/evdev.c | |
parent | Print a warning if a keycode exceeds the range accepted by the server. (diff) | |
download | xf86-input-evdev-a9d72b40fbe178fa4fbb9d0e7c02dc6c5250969a.tar.gz xf86-input-evdev-a9d72b40fbe178fa4fbb9d0e7c02dc6c5250969a.tar.bz2 xf86-input-evdev-a9d72b40fbe178fa4fbb9d0e7c02dc6c5250969a.zip |
Adding mouse wheel emulation code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'src/evdev.c')
-rw-r--r-- | src/evdev.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/evdev.c b/src/evdev.c index bbabb56..5bc562a 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -217,11 +217,16 @@ EvdevReadInput(InputInfoPtr pInfo) break; } + /* Get the signed value, earlier kernels had this as unsigned */ value = ev.value; switch (ev.type) { case EV_REL: + /* Handle mouse wheel emulation */ + if (EvdevWheelEmuFilterMotion(pInfo, &ev)) + break; + switch (ev.code) { case REL_X: dx += value; @@ -286,6 +291,9 @@ EvdevReadInput(InputInfoPtr pInfo) if (EvdevMBEmuFilterEvent(pInfo, button, value)) break; + if (EvdevWheelEmuFilterButton(pInfo, button, value)) + break; + if (button) xf86PostButtonEvent(pInfo->dev, 0, button, value, 0, 0); else @@ -943,7 +951,10 @@ EvdevProc(DeviceIntPtr device, int what) { xf86AddEnabledDevice(pInfo); if (pEvdev->flags & EVDEV_BUTTON_EVENTS) + { EvdevMBEmuPreInit(pInfo); + EvdevWheelEmuPreInit(pInfo); + } device->public.on = TRUE; } break; |