lkml.org 
[lkml]   [2006]   [Nov]   [5]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateSun, 05 Nov 2006 12:40:44 +0100
FromNémeth_Márton <>
Subject[PATCH] input: map BTN_FORWARD to button 2 in mousedev
From: Márton Németh <nm127@freemail.hu>

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@freemail.hu>
---
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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2006-11-05 12:43    [from the cache]
©2003-2008