xserver: Branch 'master'

Peter Hutterer whot at kemper.freedesktop.org
Sun Jan 11 17:46:30 PST 2009


 dix/getevents.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 56efbc0986e782da45addb05ece9f456d41d7a90
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Fri Jan 9 13:46:20 2009 +1000

    dix: drop x/y back into last.valuators before updating the history (#19285)
    
    positionSprite needs to scale to screen coordinates and in the process of
    doing so alters dev->last.valuators[0:1]. Drop the real coordinates back after
    finishing and before updating the motion history. This way, we don't push the
    screen coordinates into the motion history.
    
    X.Org Bug 19285 <http://bugs.freedesktop.org/show_bug.cgi?id=19285>

diff --git a/dix/getevents.c b/dix/getevents.c
index 1189d0b..acc8a4f 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -720,6 +720,9 @@ positionSprite(DeviceIntPtr dev, int *x, int *y,
                                  dev->valuator->axes + 1, scr->height);
     }
 
+    /* dropy x/y (device coordinates) back into valuators for next event */
+    dev->last.valuators[0] = *x;
+    dev->last.valuators[1] = *y;
 }
 
 /**
@@ -1006,9 +1009,6 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons,
     positionSprite(pDev, &x, &y, scr, &cx, &cy);
     updateHistory(pDev, first_valuator, num_valuators, ms);
 
-    /* dropy x/y (device coordinates) back into valuators for next event */
-    pDev->last.valuators[0] = x;
-    pDev->last.valuators[1] = y;
 
     /* Update the valuators with the true value sent to the client*/
     if (num_valuators >= 1 && first_valuator == 0)


More information about the xorg-commit mailing list