Mercurial > emacs
changeset 70086:c12e24e779ab
Comment changes.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 18 Apr 2006 21:05:45 +0000 |
parents | 93e99c27012e |
children | 9b4ac97c8a7a |
files | src/xmenu.c |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xmenu.c Tue Apr 18 21:01:16 2006 +0000 +++ b/src/xmenu.c Tue Apr 18 21:05:45 2006 +0000 @@ -2180,21 +2180,27 @@ /* If there has been no change in the Lisp-level contents of the menu bar, skip redisplaying it. Just exit. */ + /* Compare the new menu items with the ones computed last time. */ for (i = 0; i < previous_menu_items_used; i++) if (menu_items_used == i || (!EQ (previous_items[i], XVECTOR (menu_items)->contents[i]))) break; if (i == menu_items_used && i == previous_menu_items_used && i != 0) { + /* The menu items have not changed. Don't bother updating + the menus in any form, since it would be a no-op. */ free_menubar_widget_value_tree (first_wv); discard_menu_items (); unbind_to (specpdl_count, Qnil); return; } + /* The menu items are different, so store them in the frame. */ f->menu_bar_vector = menu_items; f->menu_bar_items_used = menu_items_used; + /* This calls restore_menu_items to restore menu_items, etc., + as they were outside. */ unbind_to (specpdl_count, Qnil); /* Now GC cannot happen during the lifetime of the widget_value,