summaryrefslogtreecommitdiff
path: root/Xi/grabdevk.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2008-01-03 17:04:54 +1030
committerPeter Hutterer <peter@cs.unisa.edu.au>2008-01-03 17:04:54 +1030
commit8da83836b60f7cdb75d08482f4311fa0e2ab4e1d (patch)
tree092efcfc39e3e293baaf04c4c84027ee453d3e13 /Xi/grabdevk.c
parenteace88989c3b65d5c20e9f37ea9b23c7c8e19335 (diff)
parentae869fc7669764729e13fdd70149ed636753f2a3 (diff)
Merge branch 'master' into mpx
Conflicts: XTrap/xtrapddmi.c Xext/security.c Xext/xprint.c Xext/xtest.c Xext/xvdisp.c Xi/exevents.c Xi/grabdevb.c Xi/grabdevk.c Xi/opendev.c Xi/ungrdev.c Xi/ungrdevb.c Xi/ungrdevk.c dix/cursor.c dix/devices.c dix/dixutils.c dix/events.c dix/getevents.c dix/main.c dix/window.c hw/xfree86/ramdac/xf86Cursor.c include/dix.h include/input.h include/inputstr.h mi/midispcur.c mi/miinitext.c mi/misprite.c render/animcur.c xfixes/cursor.c xkb/xkbAccessX.c
Diffstat (limited to 'Xi/grabdevk.c')
-rw-r--r--Xi/grabdevk.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/Xi/grabdevk.c b/Xi/grabdevk.c
index d38c053f0..238718bbb 100644
--- a/Xi/grabdevk.c
+++ b/Xi/grabdevk.c
@@ -61,8 +61,8 @@ SOFTWARE.
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include "exevents.h"
-#include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h"
+#include "xace.h"
#include "grabdev.h"
#include "grabdevk.h"
@@ -115,18 +115,23 @@ ProcXGrabDeviceKey(ClientPtr client)
if (stuff->length != (sizeof(xGrabDeviceKeyReq) >> 2) + stuff->event_count)
return BadLength;
- dev = LookupDeviceIntRec(stuff->grabbed_device);
- if (dev == NULL)
- return BadDevice;
+ ret = dixLookupDevice(&dev, stuff->grabbed_device, client, DixGrabAccess);
+ if (ret != Success)
+ return ret;
if (stuff->modifier_device != UseXKeyboard) {
- mdev = LookupDeviceIntRec(stuff->modifier_device);
- if (mdev == NULL)
- return BadDevice;
+ ret = dixLookupDevice(&mdev, stuff->modifier_device, client,
+ DixReadAccess);
+ if (ret != Success)
+ return ret;
if (mdev->key == NULL)
return BadMatch;
- } else
+ } else {
mdev = PickKeyboard(client);
+ ret = XaceHook(XACE_DEVICE_ACCESS, client, mdev, DixReadAccess);
+ if (ret != Success)
+ return ret;
+ }
class = (XEventClass *) (&stuff[1]); /* first word of values */