summaryrefslogtreecommitdiff
path: root/XI2proto.h
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-04-25 11:08:21 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-05-07 16:50:47 +1000
commit504b480c946fe4c4a96500ef8c5da100b787ab32 (patch)
tree10d5e67605cbb52543212df5b6884680a1b12a19 /XI2proto.h
parent5d60550fdeb375a88ac9da42bcad4ee69b0df64a (diff)
XI2: add passive grabs.
Most notably XI2 provides keysym grabs instead of keycode grabs.
Diffstat (limited to 'XI2proto.h')
-rw-r--r--XI2proto.h67
1 files changed, 66 insertions, 1 deletions
diff --git a/XI2proto.h b/XI2proto.h
index 4206d2d..7e87327 100644
--- a/XI2proto.h
+++ b/XI2proto.h
@@ -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 *