changeset 38802:7ca6f1c8e014

(x_update_menu_appearance): Save and restore value of interrupt_input_blocked.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 14 Aug 2001 10:57:07 +0000
parents 7784d99b4ecc
children 65b24a70fc66
files src/xfaces.c
diffstat 1 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/xfaces.c	Mon Aug 13 12:14:32 2001 +0000
+++ b/src/xfaces.c	Tue Aug 14 10:57:07 2001 +0000
@@ -4469,8 +4469,18 @@
 
       if (changed_p && f->output_data.x->menubar_widget)
 	{
+	  int blocked;
+	  
+	  /* Function set_frame_menubar may call Lisp, for example
+	     from menu_item_eval_property inside a condition-case.  If
+	     that code signals an error, Fsignal totally unblocks
+	     input, and if this function is called inside a
+	     BLOCK/UNBLOCK_INPUT which it is, this will screw up the
+	     interrupt_input_blocked count, unless we save it...  */
+	  blocked = interrupt_input_blocked;
 	  free_frame_menubar (f);
 	  set_frame_menubar (f, 1, 1);
+	  interrupt_input_blocked = blocked;
 	}
     }
 }
@@ -6039,8 +6049,8 @@
   int success_p = 0;
   int count = BINDING_STACK_SIZE ();
 
-  /* Block input there so that we won't be surprised by an X expose
-     event, for instance without having the faces set up.  */
+  /* Block input here so that we won't be surprised by an X expose
+     event, for instance, without having the faces set up.  */
   BLOCK_INPUT;
   specbind (Qscalable_fonts_allowed, Qt);