Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=27845


Best Regards
 Alistair Leslie-Hughes
>From 58a1d8462fd3e8cd0fdeac18659f426bc0aa5c4a Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <[email protected]>
Date: Wed, 28 Sep 2011 20:17:38 +1000
Subject: [PATCH] Initialize all screens

---
 dix/devices.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/dix/devices.c b/dix/devices.c
index 0ccf252..644e3e7 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -351,6 +351,7 @@ EnableDevice(DeviceIntPtr dev, BOOL sendevent)
     DeviceIntPtr other;
     BOOL enabled;
     int flags[MAXDEVICES] = {0};
+    int i;
 
     for (prev = &inputInfo.off_devices;
         *prev && (*prev != dev);
@@ -364,9 +365,13 @@ EnableDevice(DeviceIntPtr dev, BOOL sendevent)
             /* Sprites appear on first root window, so we can hardcode it */
             if (dev->spriteInfo->spriteOwner)
             {
-                InitializeSprite(dev, screenInfo.screens[0]->root);
+                /* Initialize all screens */
+                for(i=0; i < screenInfo.numScreens; i++)
+                {
+                    InitializeSprite(dev, screenInfo.screens[i]->root);
                                                  /* mode doesn't matter */
-                EnterWindow(dev, screenInfo.screens[0]->root, NotifyAncestor);
+                    EnterWindow(dev, screenInfo.screens[i]->root, 
NotifyAncestor);
+                }
             }
             else if ((other = NextFreePointerDevice()) == NULL)
             {
-- 
1.7.4.1

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to