dix: store the absolute values in the motion history.

The core protocol requires absolute values and it's a bit hard to get them if
we only have relative ones in the history. Switch the motion history to
absolute, and if we really need the relative values, we can probably generated
them from the abs. ones in the future.
This commit is contained in:
Peter Hutterer 2008-05-26 17:23:34 +09:30
parent 1883485edd
commit 5fe57787fa
2 changed files with 4 additions and 3 deletions

View File

@ -119,7 +119,7 @@ ProcXGetDeviceMotionEvents(ClientPtr client)
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
rep.nEvents = 0; rep.nEvents = 0;
rep.axes = axes; rep.axes = axes;
rep.mode = v->mode & DeviceMode; rep.mode = Absolute; /* XXX we don't do relative at the moment */
rep.length = 0; rep.length = 0;
start = ClientTimeToServerTime(stuff->start); start = ClientTimeToServerTime(stuff->start);
stop = ClientTimeToServerTime(stuff->stop); stop = ClientTimeToServerTime(stuff->stop);

View File

@ -1003,10 +1003,11 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons,
y = rescaleValuatorAxis(pDev->last.valuators[1], NULL, y = rescaleValuatorAxis(pDev->last.valuators[1], NULL,
pDev->valuator->axes + 1, scr->height); pDev->valuator->axes + 1, scr->height);
updateMotionHistory(pDev, ms, first_valuator, num_valuators, valuators); updateMotionHistory(pDev, ms, first_valuator, num_valuators,
&pDev->last.valuators[first_valuator]);
if (master) if (master)
updateMotionHistory(master, ms, first_valuator, num_valuators, updateMotionHistory(master, ms, first_valuator, num_valuators,
valuators); &pDev->last.valuators[first_valuator]);
/* Update the valuators with the true value sent to the client*/ /* Update the valuators with the true value sent to the client*/
if(v0) *v0 = x; if(v0) *v0 = x;