HID: magicmouse: Do not set BTN_MOUSE on double report
[ Upstream commit bb5f0c855dcfc893ae5ed90e4c646bde9e4498bf ]
Under certain conditions the Magic Trackpad can group 2 reports in a
single packet. The packet is split and the raw event function is
invoked recursively for each part.
However, after processing each part, the BTN_MOUSE status is updated,
sending multiple click events. [1]
Return after processing double reports to avoid this issue.
Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/811 # [1]
Fixes: a462230e16 ("HID: magicmouse: enable Magic Trackpad support")
Reported-by: Nulo <git@nulo.in>
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221009182747.90730-1-jose.exposito89@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
3d1b83ff7b
commit
31294deb75
@@ -343,7 +343,7 @@ static int magicmouse_raw_event(struct hid_device *hdev,
|
|||||||
magicmouse_raw_event(hdev, report, data + 2, data[1]);
|
magicmouse_raw_event(hdev, report, data + 2, data[1]);
|
||||||
magicmouse_raw_event(hdev, report, data + 2 + data[1],
|
magicmouse_raw_event(hdev, report, data + 2 + data[1],
|
||||||
size - 2 - data[1]);
|
size - 2 - data[1]);
|
||||||
break;
|
return 0;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user