emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master b2f9c4c6d4: Fix crash when the keymap changes


From: Po Lu
Subject: master b2f9c4c6d4: Fix crash when the keymap changes
Date: Fri, 19 Aug 2022 22:33:55 -0400 (EDT)

branch: master
commit b2f9c4c6d4bf4a0f1f1f7342cb9de410f187c40c
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Fix crash when the keymap changes
    
    * src/xterm.c (handle_one_xevent): Call
    XkbRefreshKeyboardMapping first before trying to update the map.
---
 src/xterm.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/xterm.c b/src/xterm.c
index 12c7b7d4dc..39e5a8e186 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -23027,6 +23027,8 @@ handle_one_xevent (struct x_display_info *dpyinfo,
          if (xkbevent->any.xkb_type == XkbNewKeyboardNotify
              || xkbevent->any.xkb_type == XkbMapNotify)
            {
+             XkbRefreshKeyboardMapping (&xkbevent->map);
+
              if (dpyinfo->xkb_desc)
                {
                  if (XkbGetUpdatedMap (dpyinfo->display,
@@ -23035,11 +23037,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                                         | XkbModifierMapMask
                                         | XkbVirtualModsMask),
                                        dpyinfo->xkb_desc) == Success)
-                   {
-                     XkbGetNames (dpyinfo->display,
-                                  XkbGroupNamesMask | XkbVirtualModNamesMask,
-                                  dpyinfo->xkb_desc);
-                   }
+                   XkbGetNames (dpyinfo->display,
+                                XkbGroupNamesMask | XkbVirtualModNamesMask,
+                                dpyinfo->xkb_desc);
                  else
                    {
                      XkbFreeKeyboard (dpyinfo->xkb_desc, XkbAllComponentsMask, 
True);
@@ -23061,7 +23061,6 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                                 dpyinfo->xkb_desc);
                }
 
-             XkbRefreshKeyboardMapping (&xkbevent->map);
              x_find_modifier_meanings (dpyinfo);
            }
          else if (x_dnd_in_progress



reply via email to

[Prev in Thread] Current Thread [Next in Thread]