On Thu, Oct 03, 2013 at 05:18:07PM -0700, Ping Cheng wrote: > On touch enabled devices, we miss pad events when nothing touches > tablet. > > Signed-off-by: Ping Cheng <pi...@wacom.com>
Acked-by: Peter Hutterer <peter.hutte...@who-t.net> Cheers, Peter > --- > src/wcmUSB.c | 28 ++++++++++++++-------------- > 1 file changed, 14 insertions(+), 14 deletions(-) > > diff --git a/src/wcmUSB.c b/src/wcmUSB.c > index eaaf854..634eb1c 100644 > --- a/src/wcmUSB.c > +++ b/src/wcmUSB.c > @@ -1464,11 +1464,12 @@ static void usbParseBTNEvent(WacomCommonPtr common, > } > if (nkeys >= usbdata->npadkeys) > change = 0; > - else if (!ds->device_type) /* expresskey pressed at > startup */ > - ds->device_type = PAD_ID; > } > > channel->dirty |= change; > + > + if (!ds->device_type && channel->dirty) /* expresskey pressed at > startup or missing type */ > + ds->device_type = PAD_ID; > } > > /** > @@ -1601,7 +1602,7 @@ static Bool usbIsTabletToolInProx(int device_type, int > proximity) > > static void usbDispatchEvents(InputInfoPtr pInfo) > { > - int i; > + int i, c; > WacomDeviceState *ds; > struct input_event* event; > WacomDevicePtr priv = (WacomDevicePtr)pInfo->private; > @@ -1722,17 +1723,16 @@ static void usbDispatchEvents(InputInfoPtr pInfo) > if (!ds->proximity) > private->wcmLastToolSerial = 0; > > - /* don't send touch event when touch isn't enabled */ > - if (ds->device_type != TOUCH_ID || common->wcmTouch) > - { > - int c; > - for (c = 0; c < MAX_CHANNELS; c++) { > - DBG(10, common, "Checking if channel %d is dirty...\n", > c); > - if (common->wcmChannel[c].dirty) { > - DBG(10, common, "Dirty flag set on channel %d; > sending event.\n", c); > - common->wcmChannel[c].dirty = FALSE; > - wcmEvent(common, c, > &common->wcmChannel[c].work); > - } > + for (c = 0; c < MAX_CHANNELS; c++) { > + ds = &common->wcmChannel[c].work; > + > + /* walk through all channels */ > + if (common->wcmChannel[c].dirty) { > + DBG(10, common, "Dirty flag set on channel %d; sending > event.\n", c); > + common->wcmChannel[c].dirty = FALSE; > + /* don't send touch event when touch isn't enabled */ > + if (ds->device_type != TOUCH_ID || common->wcmTouch) > + wcmEvent(common, c, ds); > } > } > } > -- > 1.8.1.2 > ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel