Xi: Fix modifier swapping in XIPassiveGrabDevice

XIPassiveGrabDevice uses a list of uint32_t as modifier sets.

The ModifierInfo struct represents the current modifier states and is
therefor used in XIQueryPointer and various events.

Signed-off-by: Daniel Martin <consume.noise@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Daniel Martin 2012-11-07 11:31:01 +01:00 committed by Peter Hutterer
parent aa9da5eae1
commit aa9a9ad08b

View File

@ -50,7 +50,7 @@ int
SProcXIPassiveGrabDevice(ClientPtr client)
{
int i;
xXIModifierInfo *mods;
uint32_t *mods;
REQUEST(xXIPassiveGrabDeviceReq);
@ -63,12 +63,10 @@ SProcXIPassiveGrabDevice(ClientPtr client)
swaps(&stuff->mask_len);
swaps(&stuff->num_modifiers);
mods = (xXIModifierInfo *) &stuff[1];
mods = (uint32_t *) &stuff[1];
for (i = 0; i < stuff->num_modifiers; i++, mods++) {
swapl(&mods->base_mods);
swapl(&mods->latched_mods);
swapl(&mods->locked_mods);
swapl(mods);
}
return ProcXIPassiveGrabDevice(client);