Mercurial > emacs
changeset 12171:1d5d8a256d88
(update_menu_bar): Use set_buffer_internal_1 to switch bufs.
Run the hooks in the proper buffer.
Normally bind overriding-local-map to nil.
(Qoverriding_local_map): New variable.
(syms_of_xdisp): staticpro it.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Fri, 09 Jun 1995 16:00:45 +0000 |
parents | 2bc3141d0d19 |
children | 58ce63f11008 |
files | src/xdisp.c |
diffstat | 1 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xdisp.c Fri Jun 09 15:44:44 1995 +0000 +++ b/src/xdisp.c Fri Jun 09 16:00:45 1995 +0000 @@ -45,6 +45,11 @@ extern Lisp_Object Qface; +extern Lisp_Object Voverriding_local_map; +extern Lisp_Object Voverriding_local_map_menu_flag; + +Lisp_Object Qoverriding_local_map; + /* Nonzero means print newline to stdout before next minibuffer message. */ int noninteractive_need_newline; @@ -1259,8 +1264,11 @@ struct buffer *prev = current_buffer; int count = specpdl_ptr - specpdl; + set_buffer_internal_1 (XBUFFER (w->buffer)); if (save_match_data) record_unwind_protect (Fstore_match_data, Fmatch_data ()); + if (NILP (Voverriding_local_map_menu_flag)) + specbind (Qoverriding_local_map, Qnil); /* Run the Lucid hook. */ call1 (Vrun_hooks, Qactivate_menubar_hook); @@ -1269,14 +1277,13 @@ if (! NILP (Vlucid_menu_bar_dirty_flag)) call0 (Qrecompute_lucid_menubar); call1 (Vrun_hooks, Qmenu_bar_update_hook); - current_buffer = XBUFFER (w->buffer); FRAME_MENU_BAR_ITEMS (f) = menu_bar_items (FRAME_MENU_BAR_ITEMS (f)); #ifdef USE_X_TOOLKIT set_frame_menubar (f, 0); #endif /* USE_X_TOOLKIT */ - current_buffer = prev; unbind_to (count, Qnil); + set_buffer_internal_1 (prev); } } } @@ -4050,6 +4057,9 @@ staticpro (&Qmenu_bar_update_hook); Qmenu_bar_update_hook = intern ("menu-bar-update-hook"); + staticpro (&Qoverriding_local_map); + Qoverriding_local_map = intern ("overriding-local-map"); + staticpro (&last_arrow_position); staticpro (&last_arrow_string); last_arrow_position = Qnil;