diff options
author | marha <marha@users.sourceforge.net> | 2011-12-12 14:26:41 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-12-12 14:26:41 +0100 |
commit | 2b5652fc7742c5ac57aca701214b046626a729e9 (patch) | |
tree | a994b9e63a32a7c061bcfb563aa22369c217e49c /xorg-server/Xi/ungrdevk.c | |
parent | 2331d6e4ac699e775ccee07a8a461cae0a98033a (diff) | |
parent | 5efb0a5e19b75137b7294b27f4e7878aeb8f0927 (diff) | |
download | vcxsrv-2b5652fc7742c5ac57aca701214b046626a729e9.tar.gz vcxsrv-2b5652fc7742c5ac57aca701214b046626a729e9.tar.bz2 vcxsrv-2b5652fc7742c5ac57aca701214b046626a729e9.zip |
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'xorg-server/Xi/ungrdevk.c')
-rw-r--r-- | xorg-server/Xi/ungrdevk.c | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/xorg-server/Xi/ungrdevk.c b/xorg-server/Xi/ungrdevk.c index 526347db4..b0d83cbbc 100644 --- a/xorg-server/Xi/ungrdevk.c +++ b/xorg-server/Xi/ungrdevk.c @@ -98,7 +98,7 @@ ProcXUngrabDeviceKey(ClientPtr client) DeviceIntPtr dev; DeviceIntPtr mdev; WindowPtr pWin; - GrabRec temporaryGrab; + GrabPtr temporaryGrab; int rc; REQUEST(xUngrabDeviceKeyReq); @@ -133,17 +133,22 @@ ProcXUngrabDeviceKey(ClientPtr client) (stuff->modifiers & ~AllModifiersMask)) return BadValue; - temporaryGrab.resource = client->clientAsMask; - temporaryGrab.device = dev; - temporaryGrab.window = pWin; - temporaryGrab.type = DeviceKeyPress; - temporaryGrab.grabtype = GRABTYPE_XI; - temporaryGrab.modifierDevice = mdev; - temporaryGrab.modifiersDetail.exact = stuff->modifiers; - temporaryGrab.modifiersDetail.pMask = NULL; - temporaryGrab.detail.exact = stuff->key; - temporaryGrab.detail.pMask = NULL; - - DeletePassiveGrabFromList(&temporaryGrab); + temporaryGrab = AllocGrab(); + if (!temporaryGrab) + return BadAlloc; + + temporaryGrab->resource = client->clientAsMask; + temporaryGrab->device = dev; + temporaryGrab->window = pWin; + temporaryGrab->type = DeviceKeyPress; + temporaryGrab->grabtype = GRABTYPE_XI; + temporaryGrab->modifierDevice = mdev; + temporaryGrab->modifiersDetail.exact = stuff->modifiers; + temporaryGrab->modifiersDetail.pMask = NULL; + temporaryGrab->detail.exact = stuff->key; + temporaryGrab->detail.pMask = NULL; + + DeletePassiveGrabFromList(temporaryGrab); + FreeGrab(temporaryGrab); return Success; } |