summaryrefslogtreecommitdiff
path: root/XI2proto.h
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2012-12-17 14:24:59 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2012-12-17 14:24:59 +1000
commit4832c94775ee4a02cfaf53ba427d7cf677f70932 (patch)
tree09b3eca911eb1e5c9b8966cd2f7a62c2cb687b33 /XI2proto.h
parent48e32091c5a3220a464caad49fd7dd013c429eda (diff)
parente93e9d004c11a59cab56139c0c04ea2b5c6a926b (diff)
downloadxorg-proto-inputproto-4832c94775ee4a02cfaf53ba427d7cf677f70932.tar.gz
Merge branch 'barriers'inputproto-2.2.99.1
Diffstat (limited to 'XI2proto.h')
-rw-r--r--XI2proto.h49
1 files changed, 48 insertions, 1 deletions
diff --git a/XI2proto.h b/XI2proto.h
index 9418357..4cdaa0d 100644
--- a/XI2proto.h
+++ b/XI2proto.h
@@ -67,6 +67,7 @@
#define Time uint32_t
#define Atom uint32_t
#define Cursor uint32_t
+#define Barrier uint32_t
/**
* XI2 Request opcodes
@@ -92,9 +93,10 @@
#define X_XIDeleteProperty 58
#define X_XIGetProperty 59
#define X_XIGetSelectedEvents 60
+#define X_XIBarrierReleasePointer 61
/** Number of XI requests */
-#define XI2REQUESTS (X_XIGetSelectedEvents - X_XIQueryPointer + 1)
+#define XI2REQUESTS (X_XIBarrierReleasePointer - X_XIQueryPointer + 1)
/** Number of XI2 events */
#define XI2EVENTS (XI_LASTEVENT + 1)
@@ -815,6 +817,22 @@ typedef struct {
} xXIGetPropertyReply;
#define sz_xXIGetPropertyReply 32
+typedef struct {
+ uint16_t deviceid;
+ uint16_t pad;
+ Barrier barrier;
+ uint32_t eventid;
+} xXIBarrierReleasePointerInfo;
+
+typedef struct {
+ uint8_t reqType; /**< Input extension major opcode */
+ uint8_t ReqType; /**< Always X_XIBarrierReleasePointer */
+ uint16_t length;
+ uint32_t num_barriers;
+ /* array of xXIBarrierReleasePointerInfo */
+} xXIBarrierReleasePointerReq;
+#define sz_xXIBarrierReleasePointerReq 8
+
/*************************************************************************************
* *
* EVENTS *
@@ -1035,10 +1053,39 @@ typedef struct
uint32_t pad3;
} xXIPropertyEvent;
+typedef struct
+{
+ uint8_t type; /**< Always GenericEvent */
+ uint8_t extension; /**< XI extension offset */
+ uint16_t sequenceNumber;
+ uint32_t length; /**< Length in 4 byte units */
+ uint16_t evtype; /**< ::XI_BarrierHit or ::XI_BarrierLeave */
+ uint16_t deviceid;
+ Time time;
+ uint32_t eventid;
+ Window root;
+ Window event;
+ Barrier barrier;
+/* └──────── 32 byte boundary ────────┘ */
+ uint32_t dtime;
+ uint32_t flags; /**< ::XIBarrierPointerReleased
+ ::XIBarrierDeviceIsGrabbed */
+ uint16_t sourceid;
+ int16_t pad;
+ FP1616 root_x;
+ FP1616 root_y;
+ FP3232 dx;
+ FP3232 dy;
+} xXIBarrierEvent;
+
+typedef xXIBarrierEvent xXIBarrierHitEvent;
+typedef xXIBarrierEvent xXIBarrierPointerReleasedEvent;
+typedef xXIBarrierEvent xXIBarrierLeaveEvent;
#undef Window
#undef Time
#undef Atom
#undef Cursor
+#undef Barrier
#endif /* _XI2PROTO_H_ */