CFLAGS += -I/usr/local/include
CFLAGS += -DI3_VERSION=\"${GIT_VERSION}\"
+ifeq ($(shell pkg-config --exact-version=0.3.3 xcb-keysyms && echo 1),1)
+# xcb-keysyms fixed API from 0.3.3 to 0.3.4, so for some months, we will
+# have this here. Distributions should upgrade their libxcb in the meantime.
+CFLAGS += -DOLD_XCB_KEYSYMS_API
+endif
+
LDFLAGS += -lm
LDFLAGS += -lxcb-event
LDFLAGS += -lxcb-property
xcb_key_symbols_t *keysyms;
xcb_get_modifier_mapping_cookie_t cookie;
xcb_get_modifier_mapping_reply_t *reply;
- xcb_keycode_t *modmap, numlock;
+ xcb_keycode_t *modmap;
int mask, i;
const int masks[8] = { XCB_MOD_MASK_SHIFT,
XCB_MOD_MASK_LOCK,
modmap = xcb_get_modifier_mapping_keycodes(reply);
/* Get the keycode for numlock */
- numlock = xcb_key_symbols_get_keycode(keysyms, XCB_NUM_LOCK);
+#ifdef OLD_XCB_KEYSYMS_API
+ xcb_keysym_t numlock = xcb_key_symbols_get_keycode(keysyms, XCB_NUM_LOCK);
+#else
+ /* For now, we only use the first keysymbol. */
+ xcb_keysym_t *numlock_syms = xcb_key_symbols_get_keycode(keysyms, XCB_NUM_LOCK);
+ xcb_keysym_t numlock = *numlock_syms;
+#endif
/* Check all modifiers (Mod1-Mod5, Shift, Control, Lock) */
for (mask = 0; mask < sizeof(masks); mask++)