diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c index df73942..0d22f27 100644 --- a/hw/kdrive/src/kinput.c +++ b/hw/kdrive/src/kinput.c @@ -2113,7 +2113,10 @@ KdEnqueuePointerEvent(KdPointerInfo *pi, unsigned long flags, int rx, int ry, else dixflags = POINTER_ABSOLUTE; - _KdEnqueuePointerEvent(pi, MotionNotify, x, y, z, 0, dixflags, FALSE); + if (((flags & KD_MOUSE_DELTA) && (x || y || z)) || (!(flags & + KD_MOUSE_DELTA) && (x != pi->dixdev->valuator->lastx || y + != pi->dixdev->valuator->lasty))) + _KdEnqueuePointerEvent(pi, MotionNotify, x, y, z, 0, dixflags, FALSE); buttons = flags;