010d2eb
From d06c8a08a432c042748b055638eb7a2a1cc453ea Mon Sep 17 00:00:00 2001
010d2eb
From: Peter Hutterer <peter.hutterer@who-t.net>
010d2eb
Date: Mon, 2 Feb 2009 10:20:13 +1000
010d2eb
Subject: [PATCH] mi: don't call UpdateSpriteForScreen if we have Xinerama enabled. #18668
010d2eb
010d2eb
In Xinerama all windows hang off the first root window. Crossing the screens
010d2eb
must not reset the spriteTrace, otherwise picking fails and events are sent to
010d2eb
the root window.
010d2eb
010d2eb
X.Org Bug 18668 <http://bugs.freedesktop.org/show_bug.cgi?id=18668>
010d2eb
010d2eb
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
010d2eb
---
010d2eb
 mi/mipointer.c |    9 ++++++++-
010d2eb
 1 files changed, 8 insertions(+), 1 deletions(-)
010d2eb
010d2eb
diff --git a/mi/mipointer.c b/mi/mipointer.c
010d2eb
index d520281..e3a4656 100644
010d2eb
--- a/mi/mipointer.c
010d2eb
+++ b/mi/mipointer.c
010d2eb
@@ -332,7 +332,14 @@ miPointerWarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
010d2eb
 	pPointer->pScreen = pScreen;
010d2eb
     }
010d2eb
 
010d2eb
-    if (changedScreen)
010d2eb
+    /* Don't call USFS if we use Xinerama, otherwise the root window is
010d2eb
+     * updated to the second screen, and we never receive any events.
010d2eb
+     * (FDO bug #18668) */
010d2eb
+    if (changedScreen
010d2eb
+#ifdef PANORAMIX
010d2eb
+            && noPanoramiXExtension
010d2eb
+#endif
010d2eb
+       )
010d2eb
         UpdateSpriteForScreen (pDev, pScreen) ;
010d2eb
 }
010d2eb
 
010d2eb
-- 
010d2eb
1.6.0.6
010d2eb