diff src/menubar-x.c @ 1279:cd0abfdb9e9d

[xemacs-hg @ 2003-02-09 09:33:42 by ben] walk-windows, redisplay fixes console-stream.c: Abort when any attempts to output a stream console are made. Should be caught sooner. event-msw.c: Don't redisplay() during sizing when the frame has not yet been initialized completely. event-stream.c, menubar-msw.c, menubar-x.c, menubar.c, menubar.h: Restore in_menu_callback. Bind it in menubar-{msw,x}.c when calling filter functions and the like. Conditionalize on it, not in_modal_loop, when issuing error in `next-event', otherwise we bite the dust immediately -- event-msw.c purposely calls Fnext_event() in a modal loop, and knows what it's doing. redisplay-output.c: Formatting fixes. redisplay.c, window.c, winslots.h: Delete lots of carcasses of attempts to add redisplay support for font-lock -- `pre/post-redisplay-hook', unimplemented junk from FSF (redisplay-end-trigger, `window-scroll-functions', `window-size-change-functions'). If we want to port some redisplay support from FSF, port the `fontified' property. redisplay.c: Put in a check here (as well as redisplay_device()) for a stream frame. We can get here directly through Lisp fun `redisplay-frame'. Abort if frame not initialized. redisplay.c: Check for stream frames/devices. window.el: walk-windows was broken when a frame was given to WHICH-FRAMES. it would loop forever. The FSF version fixes this but i didn't sync to them because (a) it conses (bad for lazy-lock), (b) it calls select-window.
author ben
date Sun, 09 Feb 2003 09:33:48 +0000
parents fffe735e63ee
children 1b0339b048ce
line wrap: on
line diff
--- a/src/menubar-x.c	Sun Feb 09 07:03:07 2003 +0000
+++ b/src/menubar-x.c	Sun Feb 09 09:33:48 2003 +0000
@@ -389,17 +389,21 @@
 						int filter_p)
 {
   struct menu_item_descriptor_to_widget_value midtwv;
+  int depth = internal_bind_int (&in_menu_callback, 1);
+  Lisp_Object retval;
 
   midtwv.desc = desc;
   midtwv.menu_type = menu_type;
   midtwv.deep_p = deep_p;
   midtwv.filter_p = filter_p;
 
-  if (UNBOUNDP
-      (event_stream_protect_modal_loop
-       ("Error during menu callback",
-	protected_menu_item_descriptor_to_widget_value_1, &midtwv,
-	UNINHIBIT_QUIT)))
+  retval = event_stream_protect_modal_loop
+    ("Error during menu callback",
+     protected_menu_item_descriptor_to_widget_value_1, &midtwv,
+     UNINHIBIT_QUIT);
+  unbind_to (depth);
+
+  if (UNBOUNDP (retval))
     return 0;
 
   return midtwv.wv;