Commit 3a700f8123477f5f93cbc46ba3d367246f93775c

Dan Nicholson 2009-03-19T17:16:13

Use common XKB headers and add common type XkbcDescRec Switched to the common XKB headers which don't contain Xlib pollution. A new common keyboard description type, XkbcDescRec, has been added. This is the XkbDescRec definitions in xkbstr.h in the xserver since it contains the defined field we'll need.

diff --git a/configure.ac b/configure.ac
index 85ba79c..b03baa4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -48,7 +48,7 @@ if test "x$CC_FOR_BUILD" = x; then
     fi
 fi
 
-PKG_CHECK_MODULES([X11], [xproto])
+PKG_CHECK_MODULES([X11], [xproto kbproto >= 1.0.99.1])
 
 dnl Ensure we have keysym headers
 AC_MSG_CHECKING([for X11 includedir])
diff --git a/include/X11/XkbCommon.h b/include/X11/XkbCommon.h
index 16cca77..416817d 100644
--- a/include/X11/XkbCommon.h
+++ b/include/X11/XkbCommon.h
@@ -29,7 +29,26 @@ authorization from the authors.
 #define _XKBCOMMON_H_
 
 #include <X11/X.h>
+#include <X11/Xdefs.h>
 #include <X11/keysymdef.h>
+#include <X11/extensions/XKBstrcommon.h>
+
+/* Common keyboard description structure */
+typedef struct _XkbcDesc {
+    unsigned int        defined;
+    unsigned short      flags;
+    unsigned short      device_spec;
+    KeyCode             min_key_code;
+    KeyCode             max_key_code;
+
+    XkbControlsPtr      ctrls;
+    XkbServerMapPtr     server;
+    XkbClientMapPtr     map;
+    XkbIndicatorPtr     indicators;
+    XkbNamesPtr         names;
+    XkbCompatMapPtr     compat;
+    XkbGeometryPtr      geom;
+} XkbcDescRec, *XkbcDescPtr;
 
 extern char *
 XkbcKeysymToString(KeySym ks);