summaryrefslogtreecommitdiff
path: root/src/x11/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/x11/util.c')
-rw-r--r--src/x11/util.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/x11/util.c b/src/x11/util.c
index 766e9a0..6618dfe 100644
--- a/src/x11/util.c
+++ b/src/x11/util.c
@@ -124,20 +124,31 @@ xkb_x11_get_core_keyboard_device_id(xcb_connection_t *conn)
return device_id;
}
+void
+get_atom_name(xcb_connection_t *conn, xcb_atom_t atom,
+ xcb_get_atom_name_cookie_t *cookie)
+{
+ if (atom == 0) {
+ cookie->sequence = 0;
+ } else {
+ *cookie = xcb_get_atom_name(conn, atom);
+ }
+}
+
bool
-get_atom_name(xcb_connection_t *conn, xcb_atom_t atom, char **out)
+get_atom_name_reply(xcb_connection_t *conn, xcb_atom_t atom,
+ xcb_get_atom_name_cookie_t cookie, char **out)
{
- xcb_get_atom_name_cookie_t cookie;
xcb_get_atom_name_reply_t *reply;
int length;
char *name;
if (atom == 0) {
*out = NULL;
+ assert(cookie.sequence == 0);
return true;
}
- cookie = xcb_get_atom_name(conn, atom);
reply = xcb_get_atom_name_reply(conn, cookie, NULL);
if (!reply)
return false;