diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2012-12-12 15:41:32 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-12-18 08:28:02 +1000 |
commit | f71c2f895c9e2f9d0d42feaac2a3e1d2deb71f67 (patch) | |
tree | 11697b10e13eb7d86eb99ff2e14dddb8c65af7a0 /Xi/xichangehierarchy.c | |
parent | cc10ac8f0e07854647e1fd7cc70b7e9f8d919fd1 (diff) |
Xi: fix per-device barrier handling
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
Diffstat (limited to 'Xi/xichangehierarchy.c')
-rw-r--r-- | Xi/xichangehierarchy.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Xi/xichangehierarchy.c b/Xi/xichangehierarchy.c index 89f16d8be..a2cb832c4 100644 --- a/Xi/xichangehierarchy.c +++ b/Xi/xichangehierarchy.c @@ -52,6 +52,7 @@ #include "xkbsrv.h" #include "xichangehierarchy.h" +#include "xibarriers.h" /** * Send the current state of the device hierarchy to all clients. @@ -189,6 +190,8 @@ add_master(ClientPtr client, xXIAddMasterInfo * c, int flags[MAXDEVICES]) flags[XTestptr->id] |= XISlaveAttached; flags[XTestkeybd->id] |= XISlaveAttached; + XIBarrierNewMasterDevice(client, ptr->id); + unwind: free(name); return rc; @@ -293,6 +296,8 @@ remove_master(ClientPtr client, xXIRemoveMasterInfo * r, int flags[MAXDEVICES]) } } + XIBarrierRemoveMasterDevice(client, ptr->id); + /* disable the remove the devices, XTest devices must be done first else the sprites they rely on will be destroyed */ DisableDevice(XTestptr, FALSE); @@ -313,6 +318,7 @@ remove_master(ClientPtr client, xXIRemoveMasterInfo * r, int flags[MAXDEVICES]) flags[keybd->id] |= XIMasterRemoved; flags[ptr->id] |= XIMasterRemoved; + unwind: return rc; } |