aboutsummaryrefslogtreecommitdiff
path: root/X11/extensions
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-01-07 16:18:35 +0100
committermarha <marha@users.sourceforge.net>2013-01-07 16:18:35 +0100
commit0a6391af3a2dd20b27c7dba9540cd3a43aff89af (patch)
treea8cb8d1735b5e7825a596407674648316f23faca /X11/extensions
parentb73b2300e7f9b90369efd2f14f086f68ee15d55f (diff)
parent034d6305a11c9d5dff9318aa897073402d08d705 (diff)
downloadvcxsrv-0a6391af3a2dd20b27c7dba9540cd3a43aff89af.tar.gz
vcxsrv-0a6391af3a2dd20b27c7dba9540cd3a43aff89af.tar.bz2
vcxsrv-0a6391af3a2dd20b27c7dba9540cd3a43aff89af.zip
Merge remote-tracking branch 'origin/released'
* origin/released: Switched to inputproto 2.2.99.1
Diffstat (limited to 'X11/extensions')
-rw-r--r--X11/extensions/XI2.h13
-rw-r--r--X11/extensions/XI2proto.h53
2 files changed, 61 insertions, 5 deletions
diff --git a/X11/extensions/XI2.h b/X11/extensions/XI2.h
index e864b0635..b1498a755 100644
--- a/X11/extensions/XI2.h
+++ b/X11/extensions/XI2.h
@@ -30,7 +30,7 @@
See commit libXi-1.4.2-21-ge8531dd */
#define XI_2_Major 2
-#define XI_2_Minor 2
+#define XI_2_Minor 3
/* Property event flags */
#define XIPropertyDeleted 0
@@ -160,6 +160,11 @@
#define XITouchPendingEnd (1 << 16)
#define XITouchEmulatingPointer (1 << 17)
+/* Barrier event flags */
+#define XIBarrierPointerReleased (1 << 0)
+#define XIBarrierDeviceIsGrabbed (1 << 1)
+
+
/* Touch modes */
#define XIDirectTouch 1
#define XIDependentTouch 2
@@ -199,7 +204,9 @@
#define XI_RawTouchBegin 22
#define XI_RawTouchUpdate 23
#define XI_RawTouchEnd 24
-#define XI_LASTEVENT XI_RawTouchEnd
+#define XI_BarrierHit 25 /* XI 2.3 */
+#define XI_BarrierLeave 26
+#define XI_LASTEVENT XI_BarrierLeave
/* NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value
* as XI_LASTEVENT if the server is supposed to handle masks etc. for this
* type of event. */
@@ -232,5 +239,7 @@
#define XI_RawTouchBeginMask (1 << XI_RawTouchBegin)
#define XI_RawTouchEndMask (1 << XI_RawTouchEnd)
#define XI_RawTouchUpdateMask (1 << XI_RawTouchUpdate)
+#define XI_BarrierHitMask (1 << XI_BarrierHit)
+#define XI_BarrierLeaveMask (1 << XI_BarrierLeave)
#endif /* _XI2_H_ */
diff --git a/X11/extensions/XI2proto.h b/X11/extensions/XI2proto.h
index 67a14dda5..ad461cd9b 100644
--- a/X11/extensions/XI2proto.h
+++ b/X11/extensions/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)
@@ -159,7 +161,7 @@ typedef struct {
uint16_t type; /**< Always ButtonClass */
uint16_t length; /**< Length in 4 byte units */
uint16_t sourceid; /**< source device for this class */
- uint16_t num_buttons; /**< Number of buttons provide */
+ uint16_t num_buttons; /**< Number of buttons provided */
} xXIButtonInfo;
/**
@@ -820,6 +822,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 *
@@ -1026,7 +1044,7 @@ typedef struct
uint8_t type; /**< Always GenericEvent */
uint8_t extension; /**< XI extension offset */
uint16_t sequenceNumber;
- uint32_t length; /**< Length in 4 byte uints */
+ uint32_t length; /**< Length in 4 byte units */
uint16_t evtype; /**< ::XI_PropertyEvent */
uint16_t deviceid;
Time time;
@@ -1040,10 +1058,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_ */