# HG changeset patch # User Gerd Moellmann # Date 997786627 0 # Node ID 7ca6f1c8e0143d3cd953a362bf54527fb9d71490 # Parent 7784d99b4ecc6615d1e6452fbf80c917c264f023 (x_update_menu_appearance): Save and restore value of interrupt_input_blocked. diff -r 7784d99b4ecc -r 7ca6f1c8e014 src/xfaces.c --- 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);