#include "lx.h" #include "proto.h" #include "internal.h" void lx_GrabKey( LX_CONN *xc, unsigned int keycode, unsigned int modifiers, LX_XID grabwin, int ownerevents, LX_GRABMODE ptrmode, LX_GRABMODE kbdmode ) { unsigned char req[16]; int proto_pmode; int proto_kmode; if ((xc->flags & XCF_FAIL) || (keycode > 255)) { lx__bad_call(xc,"lx_GrabKey"); return; } proto_pmode = lx__grabmode_to_proto(ptrmode); proto_kmode = lx__grabmode_to_proto(kbdmode); if ((proto_pmode < 0) || (proto_kmode < 0)) { lx__bad_call(xc,"lx_GrabKey"); return; } req[0] = XP_REQ_GrabKey; req[1] = lx__boolean_to_proto(ownerevents); w_card16(&req[2],4); w_card32(&req[4],grabwin); w_card16(&req[8],modifiers); req[10] = keycode; req[11] = proto_pmode; req[12] = proto_kmode; lx__send_req(xc,&req[0],-1); }