On Thu, Oct 3, 2013 at 5:18 PM, Ping Cheng <pingli...@gmail.com> wrote:
> On touch enabled devices, we miss pad events when nothing touches
> tablet.
>

This commit message needs to be expanded. I have no idea what what the
underlying problem is, or how this patch fixes it. The first hunk
makes sense (setting PAD_ID shouldn't be limited to just tablets that
use generic BTN_n events), but the second hunk doesn't look like it is
doing much of anything (it now always clears the dirty flag on touch
devices, but that shouldn't have any practical effect...)

Jason
---
Now instead of four in the eights place /
you’ve got three, ‘Cause you added one  /
(That is to say, eight) to the two,     /
But you can’t take seven from three,    /
So you look at the sixty-fours....

> Signed-off-by: Ping Cheng <pi...@wacom.com>
> ---
>  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

------------------------------------------------------------------------------
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

Reply via email to