From 5ef5e89f0e4b9b8820093e072430e295efce32fa Mon Sep 17 00:00:00 2001 From: Simon Thum Date: Sun, 28 Sep 2008 22:32:44 +0930 Subject: [PATCH] dix: fix non-initialization of pointer accel in master devices. Init MDs always with PtrAccelNoOp. Signed-off-by: Peter Hutterer --- dix/devices.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dix/devices.c b/dix/devices.c index f8ae6da24..adb012f4a 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -1262,7 +1262,9 @@ InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes, } dev->last.numValuators = numAxes; - if(!dev->isMaster) /* master devs do not accelerate */ + if(dev->isMaster) /* master devs do not accelerate */ + InitPointerAccelerationScheme(dev, PtrAccelNoOp); + else InitPointerAccelerationScheme(dev, PtrAccelDefault); return TRUE; } @@ -1289,9 +1291,12 @@ InitPointerAccelerationScheme(DeviceIntPtr dev, val = dev->valuator; - if(!val || dev->isMaster) /* bail out if called for master devs */ + if(!val) return FALSE; + if(dev->isMaster && (scheme != PtrAccelNoOp)) + scheme = PtrAccelNoOp; /* no accel for master devices */ + for(x = 0; pointerAccelerationScheme[x].number >= 0; x++) { if(pointerAccelerationScheme[x].number == scheme){ i = x;