diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-04-25 11:08:21 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-05-07 16:50:47 +1000 |
commit | 504b480c946fe4c4a96500ef8c5da100b787ab32 (patch) | |
tree | 10d5e67605cbb52543212df5b6884680a1b12a19 /XI2proto.h | |
parent | 5d60550fdeb375a88ac9da42bcad4ee69b0df64a (diff) |
XI2: add passive grabs.
Most notably XI2 provides keysym grabs instead of keycode grabs.
Diffstat (limited to 'XI2proto.h')
-rw-r--r-- | XI2proto.h | 67 |
1 files changed, 66 insertions, 1 deletions
@@ -58,8 +58,10 @@ #define X_XIGrabDevice 51 #define X_XIUngrabDevice 52 #define X_XIAllowEvents 53 +#define X_XIPassiveGrabDevice 54 +#define X_XIPassiveUngrabDevice 55 -#define XI2REQUESTS (X_XIAllowEvents - X_XIQueryDevicePointer + 1) +#define XI2REQUESTS (X_XIPassiveUngrabDevice - X_XIQueryDevicePointer + 1) #define XI2EVENTS (XI_LASTEVENT + 1) /************************************************************************************* @@ -171,6 +173,15 @@ typedef struct { uint16_t mask_len; /**< Length of mask in 4 byte units */ } xXIDeviceEventMask; + + +typedef struct { + uint32_t modifiers; + uint8_t status; + uint8_t pad0; + uint16_t pad1; +} xXIGrabModifierInfo; + /************************************************************************************* * * * REQUESTS * @@ -557,6 +568,60 @@ typedef struct { } xXIAllowEventsReq; #define sz_xXIAllowEventsReq 12 + +/********************************************************** + * + * PassiveGrabDevice + * + */ +typedef struct { + uint8_t reqType; + uint8_t ReqType; /* Always X_XIPassiveGrabDevice */ + uint16_t length; + Time time; + Window grab_window; + Cursor cursor; + uint32_t detail; + uint16_t deviceid; + uint16_t num_modifiers; + uint16_t mask_len; + uint8_t grab_type; + uint8_t grab_mode; + uint8_t paired_device_mode; + uint8_t owner_events; + uint16_t pad1; +} xXIPassiveGrabDeviceReq; +#define sz_xXIPassiveGrabDeviceReq 32 + +typedef struct { + uint8_t repType; /* input extension major opcode */ + uint8_t RepType; /* Always X_XIPassiveGrabDevice */ + uint16_t sequenceNumber; + uint32_t length; + uint16_t num_modifiers; + uint16_t pad1; + uint32_t pad2; + uint32_t pad3; + uint32_t pad4; + uint32_t pad5; + uint32_t pad6; +} xXIPassiveGrabDeviceReply; +#define sz_xXIPassiveGrabDeviceReply 32 + +typedef struct { + uint8_t reqType; + uint8_t ReqType; /* Always X_XIPassiveUngrabDevice */ + uint16_t length; + Window grab_window; + uint32_t detail; + uint16_t deviceid; + uint16_t num_modifiers; + uint8_t grab_type; + uint8_t pad0; + uint16_t pad1; +} xXIPassiveUngrabDeviceReq; +#define sz_xXIPassiveUngrabDeviceReq 20 + /************************************************************************************* * * * EVENTS * |