# HG changeset patch # User Gerd Moellmann # Date 979129069 0 # Node ID 3de883052d4949b8bc7bd8b7b927458d41490d27 # Parent b8bdb63c0f6e488d20175ac2ecf31f620ac5cc54 (Fx_backspace_delete_keys_p): Use XkbGetMap and XkbGetNames instead of XkbGetKeyboard. diff -r b8bdb63c0f6e -r 3de883052d49 src/xfns.c --- a/src/xfns.c Wed Jan 10 11:54:41 2001 +0000 +++ b/src/xfns.c Wed Jan 10 12:17:49 2001 +0000 @@ -11179,34 +11179,45 @@ major = XkbMajorVersion; minor = XkbMinorVersion; if (!XkbLibraryVersion (&major, &minor)) - return Qnil; + { + UNBLOCK_INPUT; + return Qnil; + } /* Check that the server supports XKB. */ major = XkbMajorVersion; minor = XkbMinorVersion; if (!XkbQueryExtension (dpy, &op, &event, &error, &major, &minor)) - return Qnil; + { + UNBLOCK_INPUT; + return Qnil; + } have_keys = Qnil; - kb = XkbGetKeyboard (dpy, XkbAllComponentsMask, XkbUseCoreKbd); + kb = XkbGetMap (dpy, XkbAllMapComponentsMask, XkbUseCoreKbd); if (kb) { int delete_keycode = 0, backspace_keycode = 0, i; - - for (i = kb->min_key_code; - (i < kb->max_key_code - && (delete_keycode == 0 || backspace_keycode == 0)); - ++i) - { - /* The XKB symbolic key names can be seen most easily - in the PS file generated by `xkbprint -label name $DISPLAY'. */ - if (bcmp ("DELE", kb->names->keys[i].name, 4) == 0) - delete_keycode = i; - else if (bcmp ("BKSP", kb->names->keys[i].name, 4) == 0) - backspace_keycode = i; - } - - XkbFreeKeyboard (kb, 0, True); + + if (XkbGetNames (dpy, XkbAllNamesMask, kb) == Success) + { + for (i = kb->min_key_code; + (i < kb->max_key_code + && (delete_keycode == 0 || backspace_keycode == 0)); + ++i) + { + /* The XKB symbolic key names can be seen most easily + in the PS file generated by `xkbprint -label name $DISPLAY'. */ + if (bcmp ("DELE", kb->names->keys[i].name, 4) == 0) + delete_keycode = i; + else if (bcmp ("BKSP", kb->names->keys[i].name, 4) == 0) + backspace_keycode = i; + } + + XkbFreeNames (kb, 0, True); + } + + XkbFreeClientMap (kb, 0, True); if (delete_keycode && backspace_keycode