summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2007-03-22 17:27:32 +1030
committerPeter Hutterer <peter@cs.unisa.edu.au>2007-03-22 17:27:32 +1030
commit4ed9be75a5d3d75782351269481db5856f7e3f60 (patch)
tree3a1bebab3a7c3b4c6c341769333c097e239d5b4a
parent9dd8dcfa7e084d94cf3b7429eae65c93416159e3 (diff)
add GetClientPointer request and reply.
add GetPairedPointer request and reply. move declaration of _XiGetDevicePresenceNotifyEvent out of the macro and wrap it between extern "C". Otherwise C++ code won't be able to find it.
-rw-r--r--XI.h5
-rw-r--r--XInput.h23
-rw-r--r--XIproto.h59
3 files changed, 85 insertions, 2 deletions
diff --git a/XI.h b/XI.h
index ad50164..d561fcf 100644
--- a/XI.h
+++ b/XI.h
@@ -50,7 +50,6 @@ SOFTWARE.
/* Definitions used by the server, library and client */
#ifndef _XI_H_
-
#define _XI_H_
#define sz_xGetExtensionVersionReq 8
@@ -123,6 +122,10 @@ SOFTWARE.
#define sz_xQueryWindowAccessReq 8
#define sz_xQueryWindowAccessReply 32
#define sz_xSetClientPointerReq 12
+#define sz_xGetClientPointerReq 8
+#define sz_xGetClientPointerReply 32
+#define sz_xGetPairedPointerReq 8
+#define sz_xGetPairedPointerReply 32
#define INAME "XInputExtension"
diff --git a/XInput.h b/XInput.h
index 46216f8..9e95993 100644
--- a/XInput.h
+++ b/XInput.h
@@ -152,9 +152,18 @@ SOFTWARE.
#define NoExtensionEvent(d,type,_class) \
{ _class = ((XDevice *) d)->device_id << 8 | _noExtensionEvent;}
+
+/* We need the declaration for DevicePresence. */
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+ extern int _XiGetDevicePresenceNotifyEvent(Display *);
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
#define DevicePresence(dpy, type, _class) \
{ \
- extern int _XiGetDevicePresenceNotifyEvent(Display *); \
type = _XiGetDevicePresenceNotifyEvent(dpy); \
_class = (0x10000 | _devicePresence); \
}
@@ -1301,6 +1310,12 @@ extern Status XChangePointerKeyboardPairing(
XDevice* /* keyboard*/
);
+extern Bool XGetPairedPointer(
+ Display* /* display */,
+ XDevice* /* keyboard */,
+ int* /* deviceid */
+);
+
extern Bool XRegisterPairingClient(
Display* /* display */
);
@@ -1359,6 +1374,12 @@ extern Status XSetClientPointer(
char /* deviceid */
);
+extern Bool XGetClientPointer(
+ Display* /* dpy */,
+ Window /* win */,
+ int* /* deviceid */
+);
+
_XFUNCPROTOEND
diff --git a/XIproto.h b/XIproto.h
index 3753bea..8905489 100644
--- a/XIproto.h
+++ b/XIproto.h
@@ -168,6 +168,8 @@ struct tmask
#define X_ChangeWindowAccess 42
#define X_QueryWindowAccess 43
#define X_SetClientPointer 44
+#define X_GetClientPointer 45
+#define X_GetPairedPointer 46
/*********************************************************
*
@@ -1645,6 +1647,63 @@ typedef struct {
/**********************************************************
*
+ * GetClientPointer.
+ *
+ */
+typedef struct {
+ CARD8 reqType;
+ CARD8 ReqType; /* Always X_GetClientPointer */
+ CARD16 length B16;
+ Window win B32;
+} xGetClientPointerReq;
+
+typedef struct {
+ CARD8 repType; /* input extension major opcode */
+ CARD8 RepType; /* Always X_GetClientPointer */
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ BOOL set; /* client pointer is set */
+ CARD8 deviceid;
+ CARD16 pad0 B16;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+} xGetClientPointerReply;
+
+/**********************************************************
+ *
+ * GetPairedPointer.
+ *
+ */
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 ReqType; /* Always X_GetPairedPointer */
+ CARD16 length B16;
+ CARD8 deviceid;
+ CARD8 pad0;
+ CARD16 pad1 B16;
+} xGetPairedPointerReq;
+
+typedef struct {
+ CARD8 repType; /* input extension major opcode */
+ CARD8 RepType; /* Always X_GetClientPointer */
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ BOOL paired; /* keyboard is paired */
+ CARD8 deviceid;
+ CARD16 pad0 B16;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+} xGetPairedPointerReply;
+
+/**********************************************************
+ *
* Input extension events.
*
* DeviceValuator