summaryrefslogtreecommitdiff
path: root/xkbcommon/xkbcommon.h
diff options
context:
space:
mode:
Diffstat (limited to 'xkbcommon/xkbcommon.h')
-rw-r--r--xkbcommon/xkbcommon.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/xkbcommon/xkbcommon.h b/xkbcommon/xkbcommon.h
index ddc715c..6387f92 100644
--- a/xkbcommon/xkbcommon.h
+++ b/xkbcommon/xkbcommon.h
@@ -147,7 +147,17 @@ struct xkb_state;
* keymap would assign each of them a keycode, by which the user should
* refer to the key throughout the library.
*
+ * Historically, the X11 protocol, and consequentially the XKB protocol,
+ * assign only 8 bits for keycodes. This limits the number of different
+ * keys that can be used simultaneously in a single keymap to 256
+ * (disregarding other limitations). This library does not share this limit;
+ * keycodes beyond 255 ('extended keycodes') are not treated specially.
+ * Keymaps and applications which are compatible with X11 should not use
+ * these keycodes.
+ *
* @todo Explain how keycodes are mapped to scancodes.
+ *
+ * @sa xkb_keycode_is_legal_ext() xkb_keycode_is_legal_x11()
*/
typedef uint32_t xkb_keycode_t;
@@ -260,7 +270,17 @@ typedef uint32_t xkb_led_mask_t;
#define XKB_LED_INVALID (0xffffffff)
#define XKB_KEYCODE_MAX (0xffffffff - 1)
+
+/**
+ * Test whether a value is a valid extended keycode.
+ * @sa xkb_keycode_t
+ **/
#define xkb_keycode_is_legal_ext(key) (key <= XKB_KEYCODE_MAX)
+
+/**
+ * Test whether a value is a valid X11 keycode.
+ * @sa xkb_keycode_t
+ */
#define xkb_keycode_is_legal_x11(key) (key >= 8 && key <= 255)
/**