Ensure all known valuator values are stored when out of proximity

The current code overwrites *all* the stored axis values with whatever
came in from evdev. Evdev is a stateful protocol, so it only sends us
updates to the axis values that have changed. We need to only update
the values that have changed.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
master
Chase Douglas 15 years ago committed by Peter Hutterer
parent eeacd3e5a8
commit 68a6a18fc2
  1. 5
      src/evdev.c

@ -504,7 +504,10 @@ EvdevProcessProximityState(InputInfoPtr pInfo)
if (!pEvdev->prox_queued)
{
if (pEvdev->abs_queued && !pEvdev->in_proximity)
valuator_mask_copy(pEvdev->prox, pEvdev->vals);
for (i = 0; i < valuator_mask_size(pEvdev->vals); i++)
if (valuator_mask_isset(pEvdev->vals, i))
valuator_mask_set(pEvdev->prox, i,
valuator_mask_get(pEvdev->vals, i));
return 0;
}

Loading…
Cancel
Save