Input: Use previous state in valuator events
Make valuator event state match other events by using the device state from before processing the event, not after. Also, we already check the number of valuators in UpdateDeviceState, so no need to do it again. Signed-off-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
18e51911f5
commit
ddb46c1421
|
@ -952,20 +952,8 @@ ProcessOtherEvent(xEventPtr xE, DeviceIntPtr device, int count)
|
|||
|
||||
/* Valuator event handling */
|
||||
for (i = 1; i < count; i++) {
|
||||
if ((++xV)->type == DeviceValuator) {
|
||||
int first = xV->first_valuator;
|
||||
if (xV->num_valuators
|
||||
&& (!v
|
||||
|| (xV->num_valuators
|
||||
&& (first + xV->num_valuators > v->numAxes))))
|
||||
FatalError("Bad valuators reported for device %s\n",
|
||||
device->name);
|
||||
xV->device_state = 0;
|
||||
if (k)
|
||||
xV->device_state |= XkbStateFieldFromRec(&k->xkbInfo->state);
|
||||
if (b)
|
||||
xV->device_state |= b->state;
|
||||
}
|
||||
if ((++xV)->type == DeviceValuator)
|
||||
xV->device_state = state;
|
||||
}
|
||||
|
||||
if (xE->u.u.type == DeviceKeyPress) {
|
||||
|
|
Loading…
Reference in New Issue