From a4cb14b5365e0cac5c8c181b69ecd504a47a89ec Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 3 Jan 2022 00:59:58 +0000 Subject: [PATCH] * src/haikumenu.c (haiku_menu_show): Fix input blocking. --- src/haikumenu.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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; } -- 2.39.5