From: Michael Stapelberg Date: Sun, 19 Apr 2009 19:37:34 +0000 (+0200) Subject: Add conditional for the 0.3.3 → 0.3.4 API fix in libxcb-keysyms X-Git-Tag: 3.a-bf1~30 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=69c9db4016e8702cb3d5fdb5ab8b30086c6c0a45;p=i3%2Fi3 Add conditional for the 0.3.3 → 0.3.4 API fix in libxcb-keysyms --- diff --git a/Makefile b/Makefile index dbe56b4b..bd4a8eca 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,12 @@ CFLAGS += -Iinclude 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 diff --git a/src/xcb.c b/src/xcb.c index 15f977dc..0daf4b42 100644 --- a/src/xcb.c +++ b/src/xcb.c @@ -236,7 +236,7 @@ void xcb_get_numlock_mask(xcb_connection_t *conn) { 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, @@ -261,7 +261,13 @@ void xcb_get_numlock_mask(xcb_connection_t *conn) { 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++)