diff options
| author | Po Lu | 2022-01-06 09:45:20 +0800 |
|---|---|---|
| committer | Po Lu | 2022-01-06 09:45:20 +0800 |
| commit | 5749c57e473808b589a615ac4e4e7f7eef8da949 (patch) | |
| tree | 00494bde25cf400e61c974010ecdc3b834bc96cf /src | |
| parent | 61f8f7f68f3bac5dc7ab41532902c480417552d8 (diff) | |
| download | emacs-5749c57e473808b589a615ac4e4e7f7eef8da949.tar.gz emacs-5749c57e473808b589a615ac4e4e7f7eef8da949.zip | |
* src/xterm.c (handle_one_xevent): Check for errors when kbd map.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xterm.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/xterm.c b/src/xterm.c index 8202e8fb003..ad6652fb33c 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -11253,15 +11253,22 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 11253 | { | 11253 | { |
| 11254 | if (dpyinfo->xkb_desc) | 11254 | if (dpyinfo->xkb_desc) |
| 11255 | { | 11255 | { |
| 11256 | XkbGetUpdatedMap (dpyinfo->display, | 11256 | if (XkbGetUpdatedMap (dpyinfo->display, |
| 11257 | (XkbKeySymsMask | 11257 | (XkbKeySymsMask |
| 11258 | | XkbKeyTypesMask | 11258 | | XkbKeyTypesMask |
| 11259 | | XkbModifierMapMask | 11259 | | XkbModifierMapMask |
| 11260 | | XkbVirtualModsMask), | 11260 | | XkbVirtualModsMask), |
| 11261 | dpyinfo->xkb_desc); | 11261 | dpyinfo->xkb_desc) == Success) |
| 11262 | XkbGetNames (dpyinfo->display, | 11262 | { |
| 11263 | XkbGroupNamesMask | XkbVirtualModNamesMask, | 11263 | XkbGetNames (dpyinfo->display, |
| 11264 | dpyinfo->xkb_desc); | 11264 | XkbGroupNamesMask | XkbVirtualModNamesMask, |
| 11265 | dpyinfo->xkb_desc); | ||
| 11266 | } | ||
| 11267 | else | ||
| 11268 | { | ||
| 11269 | XkbFreeKeyboard (dpyinfo->xkb_desc, XkbAllComponentsMask, True); | ||
| 11270 | dpyinfo->xkb_desc = NULL; | ||
| 11271 | } | ||
| 11265 | 11272 | ||
| 11266 | x_find_modifier_meanings (dpyinfo); | 11273 | x_find_modifier_meanings (dpyinfo); |
| 11267 | } | 11274 | } |