[PATCH xf86-input-evdev] Copy out of proximity values into current values selectively
Peter Hutterer
peter.hutterer at who-t.net
Sun Apr 17 20:57:09 PDT 2011
On Fri, Apr 15, 2011 at 12:14:03PM -0400, Chase Douglas wrote:
> Otherwise, an event that causes us to go into proximity with some new
> valuator values will retain some old valuator values from when last in
> proximity. This change ensures that all values posted while out of
> proximity are accounted for.
>
> Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
> ---
> src/evdev.c | 15 ++++++++-------
> 1 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/src/evdev.c b/src/evdev.c
> index b767b0e..f31f492 100644
> --- a/src/evdev.c
> +++ b/src/evdev.c
> @@ -525,13 +525,14 @@ EvdevProcessProximityState(InputInfoPtr pInfo)
> {
> /* We're about to go into/out of proximity but have no abs events
> * within the EV_SYN. Use the last coordinates we have. */
> - if (!pEvdev->abs_queued &&
> - valuator_mask_num_valuators(pEvdev->prox) > 0)
> - {
> - valuator_mask_copy(pEvdev->vals, pEvdev->prox);
> - valuator_mask_zero(pEvdev->prox);
> - pEvdev->abs_queued = 1;
> - }
> + for (i = 0; i < valuator_mask_size(pEvdev->prox); i++)
> + if (!valuator_mask_isset(pEvdev->vals, i) &&
> + valuator_mask_isset(pEvdev->prox, i))
> + valuator_mask_set(pEvdev->vals, i,
> + valuator_mask_get(pEvdev->prox, i));
> + valuator_mask_zero(pEvdev->prox);
> +
> + pEvdev->abs_queued = valuator_mask_size(pEvdev->vals);
> }
>
> pEvdev->in_proximity = prox_state;
> --
> 1.7.4.1
pushed, thank you
Cheers,
Peter
More information about the xorg-devel
mailing list