diff options
Diffstat (limited to 'xorg-server/dix/getevents.c')
-rw-r--r-- | xorg-server/dix/getevents.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/xorg-server/dix/getevents.c b/xorg-server/dix/getevents.c index 82bb77b4b..197deb4fb 100644 --- a/xorg-server/dix/getevents.c +++ b/xorg-server/dix/getevents.c @@ -710,7 +710,7 @@ moveRelative(DeviceIntPtr dev, int *x, int *y, /* 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) { + if(dev->u.master && dev->valuator->mode == Absolute) { clipAxis(dev, 0, x); clipAxis(dev, 1, y); } @@ -720,7 +720,8 @@ moveRelative(DeviceIntPtr dev, int *x, int *y, for (; i < num; i++) { dev->last.valuators[i + first] += valuators[i]; - clipAxis(dev, i, &dev->last.valuators[i + first]); + if (dev->valuator->mode == Absolute) + clipAxis(dev, i, &dev->last.valuators[i + first]); valuators[i] = dev->last.valuators[i + first]; } } |