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 40fe4b7bb..a277fcea0 100644 --- a/xorg-server/dix/getevents.c +++ b/xorg-server/dix/getevents.c @@ -720,7 +720,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);
}
@@ -730,7 +730,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];
}
}
|