The VCP doesn't need to update the valuators anyway since it cannot send XI events. Just skip that bit.
X.Org Bug 18882 <http://bugs.freedesktop.org/show_bug.cgi?id=18882> --- Not cherry-picked from master as master does need to update the valuators. (Keith: sorry for the resend, wrong "From:" blocked deliver to the xorg list) Xi/exevents.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Xi/exevents.c b/Xi/exevents.c index 00a6b21..8eef400 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -781,12 +781,14 @@ UpdateDeviceState(DeviceIntPtr device, xEvent* xE, int count) } /* Update device axis */ - for (i = 1; i < count; i++) { + /* Don't update valuators for the VCP, it never sends XI events anyway */ + for (i = 1; !device->isMaster && i < count; i++) { if ((++xV)->type == DeviceValuator) { int *axisvals; int first = xV->first_valuator; BOOL change = FALSE; + if (xV->num_valuators && (!v || (xV->num_valuators && (first + xV->num_valuators > v->numAxes)))) @@ -1009,7 +1011,9 @@ ProcessOtherEvent(xEventPtr xE, DeviceIntPtr device, int count) } /* Valuator event handling */ - for (i = 1; i < count; i++) { + /* Don't care about valuators for the VCP, it never sends XI events */ + + for (i = 1; !device->isMaster && i < count; i++) { if ((++xV)->type == DeviceValuator) { int first = xV->first_valuator; if (xV->num_valuators -- 1.6.0.4 _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg