Sorry, forgot the attachment.

Thomas Jaeger wrote:
> The attached patch implements the suggested behavior.  I don't think
> that this violates the spec.
>From c41b2dcfe145022b1a3dba4243ad992e903238f2 Mon Sep 17 00:00:00 2001
From: Thomas Jaeger <[email protected]>
Date: Sat, 3 Jan 2009 17:19:55 -0500
Subject: [PATCH] Update rootX/rootY when replaying events

This ensures that the actual motion history is replayed and that clients
know the current pointer position.
---
 dix/events.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dix/events.c b/dix/events.c
index bd56f3b..ac5adcc 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -2558,7 +2558,7 @@ CheckMotion(xEvent *xE, DeviceIntPtr pDev)
 	return XineramaCheckMotion(xE, pDev);
 #endif
 
-    if (xE && !syncEvents.playingEvents)
+    if (xE)
     {
         /* GetPointerEvents() guarantees that pointer events have the correct
            rootX/Y set already. */
@@ -2602,8 +2602,8 @@ CheckMotion(xEvent *xE, DeviceIntPtr pDev)
 	    ConfineToShape(pDev, pSprite->hotShape, &pSprite->hot.x, &pSprite->hot.y);
 	pSprite->hotPhys = pSprite->hot;
 
-	if ((pSprite->hotPhys.x != *rootX) ||
-	    (pSprite->hotPhys.y != *rootY))
+	if (!syncEvents.playingEvents &&
+	    ((pSprite->hotPhys.x != *rootX) || (pSprite->hotPhys.y != *rootY)))
 	{
 	    (*pSprite->hotPhys.pScreen->SetCursorPosition)(
                 pDev, pSprite->hotPhys.pScreen,
-- 
1.6.0.4

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

Reply via email to