xserver: Branch 'master'

Peter Hutterer whot at kemper.freedesktop.org
Wed Nov 30 02:12:27 UTC 2016


 Xi/xichangehierarchy.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

New commits:
commit d6a6e1d6abb110ff00ad31b94cd29d92ca7c71a5
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Fri Nov 11 15:28:50 2016 +1000

    Xi: when creating a new master device, update barries for all clients
    
    The previous code only worked when the barrier was created by the same client
    as the one calling XIChangeDeviceHierarchy.
    
    http://bugzilla.redhat.com/show_bug.cgi?id=1384432
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Daniel Stone <daniels at collabora.com>

diff --git a/Xi/xichangehierarchy.c b/Xi/xichangehierarchy.c
index 8d5b577..f2b7785 100644
--- a/Xi/xichangehierarchy.c
+++ b/Xi/xichangehierarchy.c
@@ -194,7 +194,8 @@ add_master(ClientPtr client, xXIAddMasterInfo * c, int flags[MAXDEVICES])
     flags[XTestptr->id] |= XISlaveAttached;
     flags[XTestkeybd->id] |= XISlaveAttached;
 
-    XIBarrierNewMasterDevice(client, ptr->id);
+    for (int i = 0; i < currentMaxClients; i++)
+        XIBarrierNewMasterDevice(clients[i], ptr->id);
 
  unwind:
     free(name);
@@ -300,7 +301,8 @@ remove_master(ClientPtr client, xXIRemoveMasterInfo * r, int flags[MAXDEVICES])
         }
     }
 
-    XIBarrierRemoveMasterDevice(client, ptr->id);
+    for (int i = 0; i < currentMaxClients; i++)
+        XIBarrierRemoveMasterDevice(clients[i], ptr->id);
 
     /* disable the remove the devices, XTest devices must be done first
        else the sprites they rely on will be destroyed  */


More information about the xorg-commit mailing list