From 4c94077d513765eb6c8585c4378b592ab65c895d Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Magnus=20Vigerl=C3=B6f?= Date: Sat, 12 Jan 2008 23:06:33 +0100 Subject: [PATCH] dix: Call clipAxis for relative events in GetPointerEvents To avoid going out of the defined box when generating relative events while not sending any core-events, we should clip the resulting x & y to the value range of the valuators. --- dix/getevents.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/dix/getevents.c b/dix/getevents.c index 3174bfa..bd2d285 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -657,6 +657,11 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons, x += valuators[0]; if (first_valuator <= 1 && num_valuators >= (2 - first_valuator)) y += valuators[1 - first_valuator]; + + /* Since we're not sending core-events we must clip both x and y + * to the defined limits so we don't run outside the box. */ + clipAxis(pDev, 0, &x); + clipAxis(pDev, 1, &y); } } -- 1.5.2.5