Thread (4 messages) 4 messages, 2 authors, 2016-05-28

Re: [PATCH v5] input: tablet: add Pegasus Notetaker tablet driver

From: Martin Kepplinger <hidden>
Date: 2016-05-28 10:37:55
Also in: lkml

Hi Dmitry,

Thanks again for your help! Only one comment below...

Am 2016-05-27 um 23:59 schrieb Dmitry Torokhov:
Hi Martin,
quoted
+static void pegasus_parse_packet(struct pegasus *pegasus)
+{
+	unsigned char *data = pegasus->data;
+	struct input_dev *dev = pegasus->dev;
+	u16 x, y;
+
+	switch (data[0]) {
+	case SPECIAL_COMMAND:
+		/* device button pressed */
+		if (data[1] == BUTTON_PRESSED)
+			schedule_work(&pegasus->init);
+
+		break;
+	/* xy data */
+	case BATTERY_LOW:
+		dev_warn_once(&dev->dev, "Pen battery low\n");
+	case BATTERY_NO_REPORT:
+	case BATTERY_GOOD:
+		x = le16_to_cpup((__le16 *)&data[2]);
+		y = le16_to_cpup((__le16 *)&data[4]);
+
+		/* ignore pen up events */
+		if (x == 0 && y == 0)
Why are we ignoring pen-up events? I'd at least send
EV_KEY/BTN_TOOL_PEN/0 and maybe the rest of BTN* events.
I tried a few things, but I found them not to be useful in our case. To
the contrary, they seem to happen at random (or wrongly) too. They seem
to be there to seperate lines in drawings or whatever, but I'm not sure
exactly when they are valuable.

As an input device I get the best user experience when we ignore them. I
don't want them to break "clicking" or the like.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help