[PATCH] dix: fix Ungrab action #55785

Lionel Elie Mamane lionel at mamane.lu
Mon Oct 8 18:17:49 PDT 2012


UngrabAllDevices(Bool kill_client):
If we are not going to kill the client (kill_clients false),
we need to deactivate grabs of active clients, too.
(If we are going to kill the client,
 no need to deactivate the grab,
 as this will be done as part of the client kill.)

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

Signed-off-by: Lionel Elie Mamane <lionel at mamane.lu>
---
 dix/grabs.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/dix/grabs.c b/dix/grabs.c
index 55bf64f..fe79674 100644
--- a/dix/grabs.c
+++ b/dix/grabs.c
@@ -179,7 +179,7 @@ UngrabAllDevices(Bool kill_client)
             continue;
         PrintDeviceGrabInfo(dev);
         client = clients[CLIENT_ID(dev->deviceGrab.grab->resource)];
-        if (!client || client->clientGone)
+        if (!kill_client || !client || client->clientGone)
             dev->deviceGrab.DeactivateGrab(dev);
         if (kill_client)
             CloseDownClient(client);
-- 
1.7.9



More information about the xorg-devel mailing list