dix: don't update the slave coordinates from the VCK.

A keyboard event from a device with both valuators and keys will be posted
through the VCK. In this case, do not update the slave device coordinates
from the VCK - they're always 0/0. Leave them as-is, for the next pointer
event will continue where it left.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Peter Hutterer 2010-01-05 13:15:25 +10:00 committed by Keith Packard
parent 326429badf
commit 6f265d55a6
1 changed files with 5 additions and 2 deletions

View File

@ -630,9 +630,12 @@ updateFromMaster(EventListPtr events, DeviceIntPtr dev, int type, int *num_event
if (master && master->last.slave != dev)
{
CreateClassesChangedEvent(events, master, dev, type);
updateSlaveDeviceCoords(master, dev);
if (IsPointerDevice(master))
{
updateSlaveDeviceCoords(master, dev);
master->last.numValuators = dev->last.numValuators;
}
master->last.slave = dev;
master->last.numValuators = dev->last.numValuators;
(*num_events)++;
events++;
}