diff --git a/src/c2.c b/src/c2.c index 8e2fcc6..685ab3f 100644 --- a/src/c2.c +++ b/src/c2.c @@ -1463,7 +1463,14 @@ c2_match_once_leaf(session_t *ps, win *w, const c2_l_t *pleaf, idx, 1L, c2_get_atom_type(pleaf), pleaf->format); Atom atom = winprop_get_int(prop); if (atom) { - tgt_free = XGetAtomName(ps->dpy, atom); + xcb_connection_t *c = XGetXCBConnection(ps->dpy); + xcb_get_atom_name_reply_t *reply = + xcb_get_atom_name_reply(c, xcb_get_atom_name(c, atom), NULL); + if (reply) { + tgt_free = strndup( + xcb_get_atom_name_name(reply), xcb_get_atom_name_name_length(reply)); + free(reply); + } } if (tgt_free) { tgt = tgt_free; diff --git a/src/compton.c b/src/compton.c index f0fcb01..96db232 100644 --- a/src/compton.c +++ b/src/compton.c @@ -2840,9 +2840,17 @@ ev_property_notify(session_t *ps, xcb_property_notify_event_t *ev) { #ifdef DEBUG_EVENTS { // Print out changed atom - char *name = XGetAtomName(ps->dpy, ev->atom); - printf_dbg(" { atom = %s }\n", name); - cxfree(name); + xcb_get_atom_name_reply_t *reply = + xcb_get_atom_name_reply(ps->c, xcb_get_atom_name(ps->c, ev->atom), NULL); + const char *name = "?"; + int name_len = 1; + if (reply) { + name = xcb_get_atom_name_name(reply); + name_len = xcb_get_atom_name_name_length(reply); + } + + printf_dbg(" { atom = %.*s }\n", name_len, name); + free(reply); } #endif