mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 11:19:37 +00:00
Input: ALPS - handle touchpoints buttons correctly
When pressing any button belonging to the touchpoint, the generated click events don't 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. Signed-off-by: Ulrich Dangel <uli@spamt.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
0b346838c5
commit
d7ed5d883c
1 changed files with 9 additions and 4 deletions
|
@ -132,18 +132,23 @@ static void alps_process_packet(struct psmouse *psmouse)
|
|||
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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue