diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/evdev.c | 4 | ||||
-rw-r--r-- | src/evdev_axes.c | 14 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/evdev.c b/src/evdev.c index 94ff353..ab9325e 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -420,10 +420,6 @@ EvdevCorePreInit(InputDriverPtr drv, IDevPtr dev, int flags) pEvdev->pass = 0; - xf86Msg(X_CONFIG, "%s: name: %s, phys: %s, device: %s, pass: %d.\n", - dev->identifier, pEvdev->name, pEvdev->phys, pEvdev->device, - pEvdev->pass); - pEvdev->callback = EvdevNew; pEvdev->dev = dev; diff --git a/src/evdev_axes.c b/src/evdev_axes.c index a164f84..55de247 100644 --- a/src/evdev_axes.c +++ b/src/evdev_axes.c @@ -485,11 +485,19 @@ EvdevAxisRelNew(InputInfoPtr pInfo) int EvdevAxesNew (InputInfoPtr pInfo) { + evdevDevicePtr pEvdev = pInfo->private; + evdevStatePtr state = &pEvdev->state; int ret = Success; + + state->axes = Xcalloc (sizeof (evdevAxesRec)); if (EvdevAxisAbsNew(pInfo) != Success) ret = !Success; if (EvdevAxisRelNew(pInfo) != Success) ret = !Success; + if (!state->abs && !state->rel) { + Xfree (state->axes); + state->axes = NULL; + } return ret; } @@ -511,9 +519,13 @@ EvdevAxesInit (DeviceIntPtr device) if (state->abs && state->abs->axes > axes) axes = state->abs->axes; - if (state->abs && state->rel->axes > axes) + if (state->rel && state->rel->axes > axes) axes = state->rel->axes; + state->axes->axes = axes; + + xf86Msg(X_CONFIG, "%s: %d valuators.\n", pInfo->name, + axes); if (!axes) return Success; |