Skip to contentSkip to conversation

input/mouse/alps.c: Handle touchpoints buttons correctly

PATCH New Ulrich Dangel 1 participant 1 message Nov 17, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 input/mouse/alps.c: Handle touchpoints buttons correctly

When pressing any button belonging to the touchpoint, the generated click events dont belong to the touchpoint but to the touchpad.

This patch fixes this behaviour, the events will be sent via the correct device, so scrolling with touchpoint is possible.

The patch compiles cleanly and has been tested successfully on my machine.

---

 alps.c |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
drivers/input/mouse/alps.c 2008-11-17 01:22:03.738057264 +0100 renamed from drivers/input/mouse/alps.c 2008-10-26 00:05:07.000000000 +0200 +9 -4
@@ -130,18 +130,23 @@ static void alps_process_packet(struct p
    ges = packet[2] & 1;
    fin = packet[2] & 2;
 
-   input_report_key(dev, BTN_LEFT, left);
-   input_report_key(dev, BTN_RIGHT, right);
-   input_report_key(dev, BTN_MIDDLE, middle);
-
    if ((priv->i->flags & ALPS_DUALPOINT) && z == 127) {
        input_report_rel(dev2, REL_X,  (x > 383 ? (x - 768) : x));
        input_report_rel(dev2, REL_Y, -(y > 255 ? (y - 512) : y));
+
+       input_report_key(dev2, BTN_LEFT, left);
+       input_report_key(dev2, BTN_RIGHT, right);
+       input_report_key(dev2, BTN_MIDDLE, middle);
+
        input_sync(dev);
        input_sync(dev2);
        return;
    }
 
+   input_report_key(dev, BTN_LEFT, left);
+   input_report_key(dev, BTN_RIGHT, right);
+   input_report_key(dev, BTN_MIDDLE, middle);
+
    /* Convert hardware tap to a reasonable Z value */
    if (ges && !fin) z = 40;