Exemplo n.º 1
0
/** Convert a keysym to a string.
 * \param ksym The keysym.
 * \param buf The destination buffer.
 * \param buf_len The buffer length.
 */
bool
keyresolv_keysym_to_string(xcb_keysym_t ksym, char *buf, ssize_t buf_len)
{
    /* Handle special KeySym (Tab, Newline...) */
    if((ksym & 0xffffff00) == 0xff00)
        return keysym_to_str(buf, buf_len, ksym);
    else if((ksym & 0xfffffe00) == 0xfe00)
        return keysym_to_xkb(buf, buf_len, ksym);
    else if((ksym & 0x1008F000) == 0x1008F000)
        return keysym_to_xf86(buf, buf_len, ksym);

    /* Handle other KeySym (like unicode...) */
    return keysym_to_utf8(buf, ksym);
}
Exemplo n.º 2
0
static bool
key_press_lookup_string(xcb_key_press_event_t *e,
                        char *buf, int buf_len,
                        xcb_keysym_t *ksym)
{
    *ksym = key_getkeysym(e->detail, e->state);

    /* Handle special KeySym (Tab, Newline...) */
    if((*ksym & 0xffffff00) == 0xff00)
        return keysym_to_str(buf, buf_len, *ksym);
    else if((*ksym & 0xfffffe00) == 0xfe00)
        return keysym_to_xkb(buf, buf_len, *ksym);

    /* Handle other KeySym (like unicode...) */
    return keysym_to_utf8(buf, buf_len, *ksym);
}