add GetClientPointer request and reply.
authorPeter Hutterer <peter@cs.unisa.edu.au>
Thu, 22 Mar 2007 06:57:32 +0000 (17:27 +1030)
committerPeter Hutterer <peter@cs.unisa.edu.au>
Thu, 22 Mar 2007 06:57:32 +0000 (17:27 +1030)
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.

XI.h
XInput.h
XIproto.h

diff --git a/XI.h b/XI.h
index ad50164..d561fcf 100644 (file)
--- 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"
 
index 46216f8..9e95993 100644 (file)
--- 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
 
index 3753bea..8905489 100644 (file)
--- 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