From 35810b6fff166eb28ff908b7d4f1d974fd9d4fca Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 4 Oct 2000 23:16:46 +0000 Subject: [PATCH] (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'. (where_is_internal_1): Don't bother ignoring menu-items any more. --- src/ChangeLog | 5 +++++ src/keymap.c | 32 +++++++++----------------------- 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 4277f5fd45b..40b21ea1a26 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2000-10-04 Stefan Monnier + + * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'. + (where_is_internal_1): Don't bother ignoring menu-items any more. + 2000-10-04 Gerd Moellmann * keyboard.c (update_menu_bindings): New variable. diff --git a/src/keymap.c b/src/keymap.c index a9b659804cd..8921f53689b 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -2170,6 +2170,14 @@ indirect definition itself.") 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 @@ where_is_internal_1 (binding, key, definition, noindirect, keymap, this, last, /* 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. */ -- 2.39.2