]> www.infradead.org Git - users/hch/misc.git/commitdiff
HID: wacom: generic: Reset events back to zero when pen leaves
authorJason Gerecke <killertofu@gmail.com>
Fri, 8 Sep 2017 00:52:15 +0000 (17:52 -0700)
committerJiri Kosina <jkosina@suse.cz>
Wed, 13 Sep 2017 17:18:01 +0000 (19:18 +0200)
As a pen leaves, we need to be sure to reset all events back to zero
so that userspace is able to get the complete pen state when it enters
proximity again.

Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/wacom_wac.c

index 929a1ceabc213adbc0b885c40da012b48b3cfaa4..2926e36cb684f834979c86b014ef0dca1f59911e 100644 (file)
@@ -2218,10 +2218,10 @@ static void wacom_wac_pen_event(struct hid_device *hdev, struct hid_field *field
                return;
 
        /* send pen events only when the pen is in range */
-       if (!wacom_wac->hid_data.inrange_state)
-               return;
-
-       input_event(input, usage->type, usage->code, value);
+       if (wacom_wac->hid_data.inrange_state)
+               input_event(input, usage->type, usage->code, value);
+       else if (wacom_wac->shared->stylus_in_proximity && !wacom_wac->hid_data.sense_state)
+               input_event(input, usage->type, usage->code, 0);
 }
 
 static void wacom_wac_pen_pre_report(struct hid_device *hdev,