diff --git a/test/xi2/protocol-xiquerydevice.c b/test/xi2/protocol-xiquerydevice.c index 90c983c432..0efc8ad385 100644 --- a/test/xi2/protocol-xiquerydevice.c +++ b/test/xi2/protocol-xiquerydevice.c @@ -33,6 +33,7 @@ #include #include +#include "dix/inpututils_priv.h" #include "miext/extinit_priv.h" #include "Xext/xinput/handlers.h" @@ -256,6 +257,8 @@ reply_XIQueryDevice_data(ClientPtr client, int len, void *data) swapl(&vi->min.frac); swapl(&vi->max.integral); swapl(&vi->max.frac); + swapl(&vi->value.integral); + swapl(&vi->value.frac); swapl(&vi->resolution); } @@ -273,6 +276,15 @@ reply_XIQueryDevice_data(ClientPtr client, int len, void *data) assert(vi->max.integral == -1); assert(vi->max.frac == 0); assert(vi->resolution == 0); + + if (info->deviceid == devices.mouse->id && + (vi->number == 2 || vi->number == 3)) { + FP3232 expected = double_to_fp3232( + devices.mouse->valuator->axisVal[vi->number]); + + assert(vi->value.integral == expected.integral); + assert(vi->value.frac == expected.frac); + } } } break; @@ -324,6 +336,9 @@ test_XIQueryDevice(void) init_simple(); + devices.mouse->valuator->axisVal[2] = 240.5; + devices.mouse->valuator->axisVal[3] = -350.25; + wrapped_dixWriteToClient = reply_XIQueryDevice; request_init(&request, XIQueryDevice);