]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix crash in NS menu code
authorAlan Third <alan@idiocy.org>
Tue, 29 Dec 2020 13:45:30 +0000 (13:45 +0000)
committerAlan Third <alan@idiocy.org>
Tue, 29 Dec 2020 13:45:30 +0000 (13:45 +0000)
* src/nsmenu.m (ns_update_menubar): When the menu generation code was
copied from xmenu.c the fix for waiting_for_input was lost.  Reinstate
it.

src/nsmenu.m

index 23699627b15f1d3994b5a7be2ebc5fa86546cae7..201c02bb35dc4a7c8397ebbbfc12ce1ef9ca0e4c 100644 (file)
@@ -104,6 +104,7 @@ ns_update_menubar (struct frame *f, bool deep_p)
   NSAutoreleasePool *pool;
   BOOL needsSet = NO;
   id menu = [NSApp mainMenu];
+  bool owfi;
 
   Lisp_Object items;
   widget_value *wv, *first_wv, *prev_wv = 0;
@@ -171,6 +172,13 @@ ns_update_menubar (struct frame *f, bool deep_p)
 
       set_buffer_internal_1 (XBUFFER (buffer));
 
+      /* TODO: for some reason this is not needed in other terms, but
+        some menu updates call Info-extract-pointer which causes
+        abort-on-error if waiting-for-input.  Needs further
+        investigation.  */
+      owfi = waiting_for_input;
+      waiting_for_input = 0;
+
       /* Run the Lucid hook.  */
       safe_run_hooks (Qactivate_menubar_hook);
 
@@ -223,6 +231,7 @@ ns_update_menubar (struct frame *f, bool deep_p)
 
       submenu_start[i] = -1;
       finish_menu_items ();
+      waiting_for_input = owfi;
 
       /* Convert menu_items into widget_value trees
         to display the menu.  This cannot evaluate Lisp code.  */