The 'wacom_mt_touch' function is responsible for handling touch input from some kinds of tablet PCs (those using report ID 13 or 3). This function contains a logic error which causes the 'touch_down' flag to not be cleared after the user stops touching the display. This could prevent the pen from being usable on devices with "shared" pen and touch sensors.
This issue was corrected in the 3.17 tree (and by extension 4.5) as part of import commit 04e1fb9 (upstream: e0d41fd) but was apparently overlooked for the 2.6.38 and 3.7 trees during the backport 77249d4 (the 2.6.36 tree received the fix, however). Signed-off-by: Jason Gerecke <jason.gere...@wacom.com> --- 2.6.38/wacom_wac.c | 2 +- 3.7/wacom_wac.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/2.6.38/wacom_wac.c b/2.6.38/wacom_wac.c index 5933417..50eb3a7 100644 --- a/2.6.38/wacom_wac.c +++ b/2.6.38/wacom_wac.c @@ -1268,7 +1268,7 @@ static int wacom_mt_touch(struct wacom_wac *wacom) input_mt_report_pointer_emulation(input, true); wacom->num_contacts_left -= contacts_to_send; - if (wacom->num_contacts_left < 0) { + if (wacom->num_contacts_left <= 0) { wacom->num_contacts_left = 0; wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom); } diff --git a/3.7/wacom_wac.c b/3.7/wacom_wac.c index 458b03b..93d95cf 100644 --- a/3.7/wacom_wac.c +++ b/3.7/wacom_wac.c @@ -1244,7 +1244,7 @@ static int wacom_mt_touch(struct wacom_wac *wacom) input_mt_report_pointer_emulation(input, true); wacom->num_contacts_left -= contacts_to_send; - if (wacom->num_contacts_left < 0) { + if (wacom->num_contacts_left <= 0) { wacom->num_contacts_left = 0; wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom); } -- 2.10.2 ------------------------------------------------------------------------------ _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel