summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-02-02 10:20:13 +1000
committerKeith Packard <keithp@keithp.com>2009-02-17 18:52:31 -0800
commita9dd41de7eecc1dcede4ccc8d5cf25f10343bb1a (patch)
tree772fafc4ba50c9853210a262f21e263d110d77f2
parent536748aa88f82e4157b86ed1a02b798b1510bdb8 (diff)
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> (cherry picked from commit 9fe9b6e4ef669b192ee349e3290db5d2aeea273c) Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--mi/mipointer.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/mi/mipointer.c b/mi/mipointer.c
index 8c8af6ec2..e37316e71 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) ;
}