summaryrefslogtreecommitdiff
path: root/xserver/Xi/ungrdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'xserver/Xi/ungrdev.c')
-rw-r--r--xserver/Xi/ungrdev.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/xserver/Xi/ungrdev.c b/xserver/Xi/ungrdev.c
index 7abb1d061..f6525a287 100644
--- a/xserver/Xi/ungrdev.c
+++ b/xserver/Xi/ungrdev.c
@@ -101,12 +101,12 @@ ProcXUngrabDevice(ClientPtr client)
rc = dixLookupDevice(&dev, stuff->deviceid, client, DixGetAttrAccess);
if (rc != Success)
return rc;
- grab = dev->grab;
+ grab = dev->deviceGrab.grab;
time = ClientTimeToServerTime(stuff->time);
if ((CompareTimeStamps(time, currentTime) != LATER) &&
- (CompareTimeStamps(time, dev->grabTime) != EARLIER) &&
- (grab) && SameClient(grab, client))
- (*dev->DeactivateGrab) (dev);
+ (CompareTimeStamps(time, dev->deviceGrab.grabTime) != EARLIER) &&
+ (grab) && SameClient(grab, client) && !grab->coreGrab)
+ (*dev->deviceGrab.DeactivateGrab) (dev);
return Success;
}