changeset 32145:a48fcf036df1

(Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'. (where_is_internal_1): Don't bother ignoring menu-items any more.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 04 Oct 2000 23:16:35 +0000
parents 547f65a9a867
children e5229d4b9f90
files src/keymap.c
diffstat 1 files changed, 9 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/src/keymap.c	Wed Oct 04 21:31:40 2000 +0000
+++ b/src/keymap.c	Wed Oct 04 23:16:35 2000 +0000
@@ -2170,6 +2170,14 @@
       last_is_meta = (XINT (last) >= 0
 		      && EQ (Faref (this, last), meta_prefix_char));
 
+      if (nomenus && XINT (last) >= 0)
+	{ /* If no menu entries should be returned, skip over the
+	     keymaps bound to `menu-bar' and `tool-bar'.  */
+	  Lisp_Object tem = Faref (this, 0);
+	  if (EQ (tem, Qmenu_bar) || EQ (tem, Qtool_bar))
+	    continue;
+	}
+
       QUIT;
 
       while (CONSP (map))
@@ -2328,29 +2336,7 @@
 
   /* Search through indirections unless that's not wanted.  */
   if (NILP (noindirect))
-    {
-      if (nomenus)
-	{
-	  while (1)
-	    {
-	      Lisp_Object map, tem;
-	      /* If the contents are (KEYMAP . ELEMENT), go indirect.  */
-	      map = get_keymap_1 (Fcar_safe (definition), 0, 0);
-	      tem = Fkeymapp (map);
-	      if (!NILP (tem))
-		definition = access_keymap (map, Fcdr (definition), 0, 0);
-	      else
-		break;
-	    }
-	  /* If the contents are (menu-item ...) or (STRING ...), reject.  */
-	  if (CONSP (definition)
-	      && (EQ (XCAR (definition),Qmenu_item)
-		  || STRINGP (XCAR (definition))))
-	    return Qnil;
-	}
-      else
-	binding = get_keyelt (binding, 0);
-    }
+    binding = get_keyelt (binding, 0);
 
   /* End this iteration if this element does not match
      the target.  */