aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/vt/vt_sysmouse.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/vt/vt_sysmouse.c')
-rw-r--r--sys/dev/vt/vt_sysmouse.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/sys/dev/vt/vt_sysmouse.c b/sys/dev/vt/vt_sysmouse.c
index 5147865fc20f..f2f5a0fa5c3a 100644
--- a/sys/dev/vt/vt_sysmouse.c
+++ b/sys/dev/vt/vt_sysmouse.c
@@ -128,7 +128,15 @@ sysmouse_evdev_store(int x, int y, int z, int buttons)
evdev_push_event(sysmouse_evdev, EV_REL, REL_X, x);
evdev_push_event(sysmouse_evdev, EV_REL, REL_Y, y);
switch (evdev_sysmouse_t_axis) {
- case EVDEV_SYSMOUSE_T_AXIS_PSM:
+ case EVDEV_SYSMOUSE_T_AXIS_WSP: /* 3 */
+ if (buttons & (1 << 5)) {
+ evdev_push_rel(sysmouse_evdev, REL_HWHEEL, z);
+ buttons &= ~(1 << 5);
+ } else {
+ evdev_push_rel(sysmouse_evdev, REL_WHEEL, -z);
+ }
+ break;
+ case EVDEV_SYSMOUSE_T_AXIS_PSM: /* 2 */
switch (z) {
case 1:
case -1:
@@ -140,14 +148,14 @@ sysmouse_evdev_store(int x, int y, int z, int buttons)
break;
}
break;
- case EVDEV_SYSMOUSE_T_AXIS_UMS:
+ case EVDEV_SYSMOUSE_T_AXIS_UMS: /* 1 */
if (buttons & (1 << 6))
evdev_push_rel(sysmouse_evdev, REL_HWHEEL, 1);
else if (buttons & (1 << 5))
evdev_push_rel(sysmouse_evdev, REL_HWHEEL, -1);
buttons &= ~((1 << 5)|(1 << 6));
/* PASSTHROUGH */
- case EVDEV_SYSMOUSE_T_AXIS_NONE:
+ case EVDEV_SYSMOUSE_T_AXIS_NONE: /* 0 */
default:
evdev_push_rel(sysmouse_evdev, REL_WHEEL, -z);
}