]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fx_backspace_delete_keys_p): Use XkbGetMap and
authorGerd Moellmann <gerd@gnu.org>
Wed, 10 Jan 2001 12:19:28 +0000 (12:19 +0000)
committerGerd Moellmann <gerd@gnu.org>
Wed, 10 Jan 2001 12:19:28 +0000 (12:19 +0000)
XkbGetNames instead of XkbGetKeyboard.

src/ChangeLog
src/xfns.c

index 51f2a856f6a34233ed9efb93c355bcba9ebca1e4..115ab52de12b0ce6509642f5ec55bfb25963cde7 100644 (file)
@@ -1,3 +1,8 @@
+2001-01-10  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
+       XkbGetNames instead of XkbGetKeyboard.
+
 2001-01-10  Dave Love  <fx@gnu.org>
 
        * sysdep.c (random): Revert the declaration.
index 037a0baa2946bd815111761fc5d4c535675e61a4..6d0d959fb09c41373fbb24c077f699c13ae85b8a 100644 (file)
@@ -11179,34 +11179,45 @@ usual X keysyms.")
   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)
+
+      if (XkbGetNames (dpy, XkbAllNamesMask, kb) == Success)
        {
-         /* 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;
+         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);
        }
 
-      XkbFreeKeyboard (kb, 0, True);
+      XkbFreeClientMap (kb, 0, True);
   
       if (delete_keycode
          && backspace_keycode