diff options
| author | Gerd Moellmann | 2001-01-10 12:19:28 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2001-01-10 12:19:28 +0000 |
| commit | c1efd2604658656e6289fd31f3d8a9866ba6cd80 (patch) | |
| tree | f838d1101e66630062e11d652a9316710b282398 | |
| parent | 1bfb1345160682ab80dd952f9fa85b69c95940ea (diff) | |
| download | emacs-c1efd2604658656e6289fd31f3d8a9866ba6cd80.tar.gz emacs-c1efd2604658656e6289fd31f3d8a9866ba6cd80.zip | |
(Fx_backspace_delete_keys_p): Use XkbGetMap and
XkbGetNames instead of XkbGetKeyboard.
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/xfns.c | 41 |
2 files changed, 31 insertions, 15 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 51f2a856f6a..115ab52de12 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2001-01-10 Gerd Moellmann <gerd@gnu.org> | ||
| 2 | |||
| 3 | * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and | ||
| 4 | XkbGetNames instead of XkbGetKeyboard. | ||
| 5 | |||
| 1 | 2001-01-10 Dave Love <fx@gnu.org> | 6 | 2001-01-10 Dave Love <fx@gnu.org> |
| 2 | 7 | ||
| 3 | * sysdep.c (random): Revert the declaration. | 8 | * sysdep.c (random): Revert the declaration. |
diff --git a/src/xfns.c b/src/xfns.c index 037a0baa294..6d0d959fb09 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -11179,34 +11179,45 @@ usual X keysyms.") | |||
| 11179 | major = XkbMajorVersion; | 11179 | major = XkbMajorVersion; |
| 11180 | minor = XkbMinorVersion; | 11180 | minor = XkbMinorVersion; |
| 11181 | if (!XkbLibraryVersion (&major, &minor)) | 11181 | if (!XkbLibraryVersion (&major, &minor)) |
| 11182 | return Qnil; | 11182 | { |
| 11183 | UNBLOCK_INPUT; | ||
| 11184 | return Qnil; | ||
| 11185 | } | ||
| 11183 | 11186 | ||
| 11184 | /* Check that the server supports XKB. */ | 11187 | /* Check that the server supports XKB. */ |
| 11185 | major = XkbMajorVersion; | 11188 | major = XkbMajorVersion; |
| 11186 | minor = XkbMinorVersion; | 11189 | minor = XkbMinorVersion; |
| 11187 | if (!XkbQueryExtension (dpy, &op, &event, &error, &major, &minor)) | 11190 | if (!XkbQueryExtension (dpy, &op, &event, &error, &major, &minor)) |
| 11188 | return Qnil; | 11191 | { |
| 11192 | UNBLOCK_INPUT; | ||
| 11193 | return Qnil; | ||
| 11194 | } | ||
| 11189 | 11195 | ||
| 11190 | have_keys = Qnil; | 11196 | have_keys = Qnil; |
| 11191 | kb = XkbGetKeyboard (dpy, XkbAllComponentsMask, XkbUseCoreKbd); | 11197 | kb = XkbGetMap (dpy, XkbAllMapComponentsMask, XkbUseCoreKbd); |
| 11192 | if (kb) | 11198 | if (kb) |
| 11193 | { | 11199 | { |
| 11194 | int delete_keycode = 0, backspace_keycode = 0, i; | 11200 | int delete_keycode = 0, backspace_keycode = 0, i; |
| 11195 | 11201 | ||
| 11196 | for (i = kb->min_key_code; | 11202 | if (XkbGetNames (dpy, XkbAllNamesMask, kb) == Success) |
| 11197 | (i < kb->max_key_code | ||
| 11198 | && (delete_keycode == 0 || backspace_keycode == 0)); | ||
| 11199 | ++i) | ||
| 11200 | { | 11203 | { |
| 11201 | /* The XKB symbolic key names can be seen most easily | 11204 | for (i = kb->min_key_code; |
| 11202 | in the PS file generated by `xkbprint -label name $DISPLAY'. */ | 11205 | (i < kb->max_key_code |
| 11203 | if (bcmp ("DELE", kb->names->keys[i].name, 4) == 0) | 11206 | && (delete_keycode == 0 || backspace_keycode == 0)); |
| 11204 | delete_keycode = i; | 11207 | ++i) |
| 11205 | else if (bcmp ("BKSP", kb->names->keys[i].name, 4) == 0) | 11208 | { |
| 11206 | backspace_keycode = i; | 11209 | /* The XKB symbolic key names can be seen most easily |
| 11210 | in the PS file generated by `xkbprint -label name $DISPLAY'. */ | ||
| 11211 | if (bcmp ("DELE", kb->names->keys[i].name, 4) == 0) | ||
| 11212 | delete_keycode = i; | ||
| 11213 | else if (bcmp ("BKSP", kb->names->keys[i].name, 4) == 0) | ||
| 11214 | backspace_keycode = i; | ||
| 11215 | } | ||
| 11216 | |||
| 11217 | XkbFreeNames (kb, 0, True); | ||
| 11207 | } | 11218 | } |
| 11208 | 11219 | ||
| 11209 | XkbFreeKeyboard (kb, 0, True); | 11220 | XkbFreeClientMap (kb, 0, True); |
| 11210 | 11221 | ||
| 11211 | if (delete_keycode | 11222 | if (delete_keycode |
| 11212 | && backspace_keycode | 11223 | && backspace_keycode |