dix: populate motion history only if the mode matches the first axis.
XI1 doesn't cater for mixed mode devices, so bail out on the first valuator that has a different mode. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
This commit is contained in:
parent
4381b70f5a
commit
ea567b675f
|
@ -378,8 +378,7 @@ AllocateMotionHistory(DeviceIntPtr pDev)
|
||||||
int numAxes;
|
int numAxes;
|
||||||
/* XI1 doesn't understand mixed mode devices */
|
/* XI1 doesn't understand mixed mode devices */
|
||||||
for (numAxes = 0; numAxes < v->numAxes; numAxes++)
|
for (numAxes = 0; numAxes < v->numAxes; numAxes++)
|
||||||
if ((v->axes[numAxes].mode & DeviceMode) !=
|
if (valuator_get_mode(pDev, numAxes) != valuator_get_mode(pDev, 0))
|
||||||
(v->mode & DeviceMode))
|
|
||||||
break;
|
break;
|
||||||
size = sizeof(INT32) * numAxes;
|
size = sizeof(INT32) * numAxes;
|
||||||
}
|
}
|
||||||
|
@ -564,8 +563,7 @@ updateMotionHistory(DeviceIntPtr pDev, CARD32 ms, ValuatorMask *mask,
|
||||||
for (i = 0; i < v->numAxes; i++)
|
for (i = 0; i < v->numAxes; i++)
|
||||||
{
|
{
|
||||||
/* XI1 doesn't support mixed mode devices */
|
/* XI1 doesn't support mixed mode devices */
|
||||||
if ((pDev->valuator->axes[i].mode & DeviceMode) !=
|
if (valuator_get_mode(pDev, i) != valuator_get_mode(pDev, 0))
|
||||||
(pDev->valuator->mode & DeviceMode))
|
|
||||||
break;
|
break;
|
||||||
if (valuator_mask_size(mask) <= i || !valuator_mask_isset(mask, i))
|
if (valuator_mask_size(mask) <= i || !valuator_mask_isset(mask, i))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue