Blob Blame History Raw
From d06c8a08a432c042748b055638eb7a2a1cc453ea Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon, 2 Feb 2009 10:20:13 +1000
Subject: [PATCH] mi: don't call UpdateSpriteForScreen if we have Xinerama enabled. #18668

In Xinerama all windows hang off the first root window. Crossing the screens
must not reset the spriteTrace, otherwise picking fails and events are sent to
the root window.

X.Org Bug 18668 <http://bugs.freedesktop.org/show_bug.cgi?id=18668>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
 mi/mipointer.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/mi/mipointer.c b/mi/mipointer.c
index d520281..e3a4656 100644
--- a/mi/mipointer.c
+++ b/mi/mipointer.c
@@ -332,7 +332,14 @@ miPointerWarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
 	pPointer->pScreen = pScreen;
     }
 
-    if (changedScreen)
+    /* Don't call USFS if we use Xinerama, otherwise the root window is
+     * updated to the second screen, and we never receive any events.
+     * (FDO bug #18668) */
+    if (changedScreen
+#ifdef PANORAMIX
+            && noPanoramiXExtension
+#endif
+       )
         UpdateSpriteForScreen (pDev, pScreen) ;
 }
 
-- 
1.6.0.6