On Tue, Dec 12, 2017 at 4:49 PM, Ping Cheng <pingli...@gmail.com> wrote:
> Thank you for your cleanup work, Jason. The first two patches look fine.
> This one definitely needs some testing to make sure it achieves what you
> planned for.
>
> Assuming your testing of this patch was successfully, the whole set is;
>
> Reviewed-by: Ping Cheng <ping.ch...@wacom.com>
>
> With one question below.
>
> On Fri, Dec 8, 2017 at 1:55 PM, Jason Gerecke <killert...@gmail.com> wrote:
>>
>> Coordinate averaging is useful for producing smooth strokes, but this
>> averaging can cause button events to be sent at the wrong location.
>> In particular, when making a series of quick strokes with an AES pen,
>> the actual location the pen contacts the display can be some distance
>> away from the first (low-quality) position report. This can result in
>> "hook" artifacts if it is still influencing the averaged pointer
>> position when the pen goes down.
>>
>> To prevent these artifacts from appearing, we reset the averaging filter
>> whenever a button is pressed. This ensures that button events are sent
>> at the pen's actual location, plus or minus some (much smaller) noise.
>> Resetting the filter should not significantly impact stroke quality since
>> buttons are rarely pressed mid-stroke.
>>
>> https://sourceforge.net/p/linuxwacom/bugs/338/
>>
>> Signed-off-by: Jason Gerecke <jason.gere...@wacom.com>
>> ---
>>  src/wcmCommon.c | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/src/wcmCommon.c b/src/wcmCommon.c
>> index 900544b..e515078 100644
>> --- a/src/wcmCommon.c
>> +++ b/src/wcmCommon.c
>> @@ -1241,6 +1241,15 @@ static void commonDispatchDevice(InputInfoPtr
>> pInfo,
>>                 if (!priv->oldState.proximity)
>>                         wcmResetSampleCounter(pChannel);
>>
>> +               /* Reset filter whenever a button is pressed to
>
>
> Shouldn't we do it for button release too? Some actions may be trigged by
> button release instead.
>

Hmm, that's an interesting question...

Having actions trigger at the actual pen position instead of its
averaged position sounds valuable, but I do worry a little that it
could result in hooks at the end of strokes. I'm not sure it would be
a problem with a normal amount of averaging, but it would definitely
be more pronounced as its increased. I'll have to do some
experimentation...

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

>> +                * ensure the clicks are sent at the pen's actual
>> +                * position. This prevents "hooks" from appearing
>> +                * at the beginning of series of rapidly-drawn or
>> +                * highly-averaged strokes.
>> +                */
>> +               if ((priv->oldState.buttons ^ filtered.buttons) &
>> filtered.buttons)
>
>
> So, is the second filtered.buttons necessary above?
>
> Cheers,
> Ping
>
>> +                       wcmResetSampleCounter(pChannel);
>> +
>>                 wcmFilterCoord(common,pChannel,&filtered);
>>         }
>>
>> --
>> 2.15.1
>>
>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to