From: Po Lu Date: Mon, 3 Jan 2022 00:59:58 +0000 (+0000) Subject: * src/haikumenu.c (haiku_menu_show): Fix input blocking. X-Git-Tag: emacs-29.0.90~3293 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a4cb14b5365e0cac5c8c181b69ecd504a47a89ec;p=emacs.git * src/haikumenu.c (haiku_menu_show): Fix input blocking. --- diff --git a/src/haikumenu.c b/src/haikumenu.c index bff6bd8a48e..5cfcc75132d 100644 --- a/src/haikumenu.c +++ b/src/haikumenu.c @@ -324,9 +324,8 @@ haiku_menu_show (struct frame *f, int x, int y, int menuflags, } digest_menu_items (menu, 0, menu_items_used, 0); BView_convert_to_screen (view, &x, &y); - unblock_input (); - menu_item_selection = BMenu_run (menu, x, y); + unblock_input (); FRAME_DISPLAY_INFO (f)->grabbed = 0; @@ -376,7 +375,9 @@ haiku_menu_show (struct frame *f, int x, int y, int menuflags, if (!NILP (subprefix_stack[j])) entry = Fcons (subprefix_stack[j], entry); } + block_input (); BPopUpMenu_delete (menu); + unblock_input (); return entry; } i += MENU_ITEMS_ITEM_LENGTH; @@ -385,10 +386,14 @@ haiku_menu_show (struct frame *f, int x, int y, int menuflags, } else if (!(menuflags & MENU_FOR_CLICK)) { + block_input (); BPopUpMenu_delete (menu); + unblock_input (); quit (); } + block_input (); BPopUpMenu_delete (menu); + unblock_input (); return Qnil; }