From b5ef88c911f697530ddc2c7302fce15ba2ead4b2 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 22 Oct 2010 14:02:17 +1000 Subject: [PATCH] dix: clip absolute axes depending on their mode. Signed-off-by: Peter Hutterer Reviewed-by: Chase Douglas --- dix/getevents.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dix/getevents.c b/dix/getevents.c index bbad692d1..6bec39c33 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -767,9 +767,11 @@ moveRelative(DeviceIntPtr dev, int *x, int *y, ValuatorMask *mask) /* if attached, clip both x and y to the defined limits (usually * co-ord space limit). If it is attached, we need x/y to go over the * limits to be able to change screens. */ - if(dev->u.master && dev->valuator->mode == Absolute) { - clipAxis(dev, 0, x); - clipAxis(dev, 1, y); + if(dev->u.master) { + if (valuator_get_mode(dev, 0) == Absolute) + clipAxis(dev, 0, x); + if (valuator_get_mode(dev, 1) == Absolute) + clipAxis(dev, 1, y); } /* calc other axes, clip, drop back into valuators */