summaryrefslogtreecommitdiff
path: root/dix
diff options
context:
space:
mode:
authorMagnus Vigerlöf <Magnus.Vigerlof@ipbo.se>2008-02-02 23:04:46 +0100
committerMagnus Vigerlöf <Magnus.Vigerlof@ipbo.se>2008-02-05 21:12:52 +0100
commita56ef7aaa4b6ac13c8181f68fc7dad3ca89e6973 (patch)
treedadd5c5a4a29aea4fc2701412d75fd52a94410c3 /dix
parenta0284d577aabea8406b72dd63773e341430ebe56 (diff)
dix: Move motion history update until after screen crossing and clipping
Cross screen and clip the coordinates before updating the motion history so that it will have the same contents as the events that are reported.
Diffstat (limited to 'dix')
-rw-r--r--dix/getevents.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/dix/getevents.c b/dix/getevents.c
index bc64d318c..3e6fe5ae0 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -667,15 +667,6 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons,
}
}
- /* Drop x and y back into the valuators list, if they were originally
- * present. */
- if (first_valuator == 0 && num_valuators >= 1)
- valuators[0] = x;
- if (first_valuator <= 1 && num_valuators >= (2 - first_valuator))
- valuators[1 - first_valuator] = y;
-
- updateMotionHistory(pDev, ms, first_valuator, num_valuators, valuators);
-
pDev->valuator->lastx = x;
pDev->valuator->lasty = y;
/* Convert the dev coord back to screen coord if we're
@@ -721,6 +712,15 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons,
cp->valuator->lasty = y;
}
+ /* Drop x and y back into the valuators list, if they were originally
+ * present. */
+ if (first_valuator == 0 && num_valuators >= 1)
+ valuators[0] = pDev->valuator->lastx;
+ if (first_valuator <= 1 && num_valuators >= (2 - first_valuator))
+ valuators[1 - first_valuator] = pDev->valuator->lasty;
+
+ updateMotionHistory(pDev, ms, first_valuator, num_valuators, valuators);
+
/* for some reason inputInfo.pointer does not have coreEvents set */
if (coreOnly || pDev->coreEvents) {
events->u.u.type = type;