[PATCH] input: map BTN_FORWARD to button 2 in mousedev

From: Németh Márton
Date: Sun Nov 05 2006 - 06:41:24 EST


From: Márton Németh <nm127@xxxxxxxxxxx>

In mousedev the BTN_LEFT and BTN_FORWARD were mapped to mouse button 0, causing
that the user space program cannot distinguish between them through /dev/input/mice.
The BTN_FORWARD is currently used in the synaptics.c, logips2pp.c and in alps.c. All
mice have BTN_LEFT, but not all have BTN_MIDDLE (e.g. Clevo D410J laptop). Mapping
BTN_FORWARD to mouse button 2 makes the BTN_FORWARD button useful on the mentioned
laptop.

Signed-off-by: Márton Németh <nm127@xxxxxxxxxxx>
---

The Clevo D410J laptop has "AlpsPS/2 ALPS GlidePoint" touchpad having the following
physical layout:

+-------------------+ +-------------+ +-------------------+
| | | BTN_FORWARD | | |
| BTN_LEFT | +-------------+ | BTN_RIGHT |
| | +-------------+ | |
| | | BTN_BACK | | |
+-------------------+ +-------------+ +-------------------+

This model does not have any BTN_MIDDLE, but the BTN_FORWARD could be used instead.
The following table summarizes the map changes:

Button name | Mapping in 2.6.19-rc3 | The changed mapping
-------------+-----------------------+---------------------
BTN_LEFT | 0 | 0
BTN_RIGHT | 1 | 1
BTN_FORWARD | 0 | 2
BTN_BACK | 3 | 3


--- linux-2.6.19-rc4/drivers/input/mousedev.c.orig 2006-10-31 04:37:36.000000000 +0100
+++ linux-2.6.19-rc4/drivers/input/mousedev.c 2006-11-05 02:34:56.000000000 +0100
@@ -196,12 +196,12 @@ static void mousedev_key_event(struct mo
switch (code) {
case BTN_TOUCH:
case BTN_0:
- case BTN_FORWARD:
case BTN_LEFT: index = 0; break;
case BTN_STYLUS:
case BTN_1:
case BTN_RIGHT: index = 1; break;
case BTN_2:
+ case BTN_FORWARD:
case BTN_STYLUS2:
case BTN_MIDDLE: index = 2; break;
case BTN_3:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/