As of Gingerbread, Android does not pay attention to if the pen
is in contact with the screen, or merely in proximity. Since the
Xorg Wacom driver does not make use of MT pen events, we simply
do not emit MT data while hovering.
Signed-off-by: Jason Gerecke <redacted>
---
Now being sent upstream to LKML at the behest of Google.
drivers/input/touchscreen/wacom_w8001.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/input/touchscreen/wacom_w8001.c b/drivers/input/touchscreen/wacom_w8001.c
index e94a21a..40ed685 100644
--- a/drivers/input/touchscreen/wacom_w8001.c
+++ b/drivers/input/touchscreen/wacom_w8001.c
@@ -279,10 +279,12 @@ static void report_pen_events(struct w8001 *w8001, struct w8001_coord *coord)
input_report_key(dev, BTN_STYLUS, coord->f1);
input_report_key(dev, w8001->type, coord->rdy);
- input_report_abs(dev, ABS_MT_POSITION_X, coord->x);
- input_report_abs(dev, ABS_MT_POSITION_Y, coord->y);
- input_report_abs(dev, ABS_MT_PRESSURE, coord->pen_pressure);
- input_report_abs(dev, ABS_MT_TOOL_TYPE, MT_TOOL_PEN);
+ if (coord->pen_pressure > 0) {
+ input_report_abs(dev, ABS_MT_POSITION_X, coord->x);
+ input_report_abs(dev, ABS_MT_POSITION_Y, coord->y);
+ input_report_abs(dev, ABS_MT_PRESSURE, coord->pen_pressure);
+ input_report_abs(dev, ABS_MT_TOOL_TYPE, MT_TOOL_PEN);
+ }
input_mt_sync(dev);
input_sync(dev);--
1.7.5.2