Sorry, my bad.  I didn't separate this patch and "dix: report subpixel
coordinates for high-resolution devices" properly.  The attached patch
should fix it.

Tom

Magnus Kessler wrote:
> Hi Peter,
> 
> earlier this week I talked to you on IRC about a regression introduced in the 
> X server that causes the pointer to jump to the lower right corner when 
> switching from using the synaptics touchpad to the IBM track point. Here's a 
> little update on my findings so far.
> 
> The regression was introduced by commit 
> 5cbd4d3d6e54d202ecdbb527b57aaefeb8435600 [0].
> 
> I ran "xinput test" on the two devices. The track point always reports values 
> within the bounds of the current maximum screen coordinates:

> 
> I'm CCing Thomas as the original author of the patch.
> 
> Cheers,
> 
> Magnus
> 
> 
> [0] 
> http://cgit.freedesktop.org/xorg/xserver/commit/?id=5cbd4d3d6e54d202ecdbb527b57aaefeb8435600

>From 3216bc285131fa556d4ca8cc8fe225244e0e2e2c Mon Sep 17 00:00:00 2001
From: Thomas Jaeger <[email protected]>
Date: Sun, 28 Jun 2009 22:36:54 -0400
Subject: [PATCH 1/7] dix: fix a regression introduced in 5cbd4d3d6e54d2

Signed-off-by: Thomas Jaeger <[email protected]>
---
 dix/getevents.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dix/getevents.c b/dix/getevents.c
index c510122..7589136 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -773,8 +773,8 @@ positionSprite(DeviceIntPtr dev, int *x, int *y,
     miPointerSetPosition(dev, screenx, screeny);
 
     if (dev->u.master) {
-        dev->u.master->last.valuators[0] = dev->last.valuators[0];
-        dev->u.master->last.valuators[1] = dev->last.valuators[1];
+        dev->u.master->last.valuators[0] = *screenx;
+        dev->u.master->last.valuators[1] = *screeny;
     }
 
     /* Crossed screen? Scale back to device coordiantes */
-- 
1.6.3.1

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to