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 929a1ce..2926e36 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,