aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-01-03 00:59:58 +0000
committerPo Lu2022-01-03 00:59:58 +0000
commita4cb14b5365e0cac5c8c181b69ecd504a47a89ec (patch)
treebdec09e32af5137d8b98509a21b4ec8c29437d60 /src
parent7ddfe1cab2156db4cb1da1968e6d6dabb533ff33 (diff)
downloademacs-a4cb14b5365e0cac5c8c181b69ecd504a47a89ec.tar.gz
emacs-a4cb14b5365e0cac5c8c181b69ecd504a47a89ec.zip
* src/haikumenu.c (haiku_menu_show): Fix input blocking.
Diffstat (limited to 'src')
-rw-r--r--src/haikumenu.c9
1 files 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,
324 } 324 }
325 digest_menu_items (menu, 0, menu_items_used, 0); 325 digest_menu_items (menu, 0, menu_items_used, 0);
326 BView_convert_to_screen (view, &x, &y); 326 BView_convert_to_screen (view, &x, &y);
327 unblock_input ();
328
329 menu_item_selection = BMenu_run (menu, x, y); 327 menu_item_selection = BMenu_run (menu, x, y);
328 unblock_input ();
330 329
331 FRAME_DISPLAY_INFO (f)->grabbed = 0; 330 FRAME_DISPLAY_INFO (f)->grabbed = 0;
332 331
@@ -376,7 +375,9 @@ haiku_menu_show (struct frame *f, int x, int y, int menuflags,
376 if (!NILP (subprefix_stack[j])) 375 if (!NILP (subprefix_stack[j]))
377 entry = Fcons (subprefix_stack[j], entry); 376 entry = Fcons (subprefix_stack[j], entry);
378 } 377 }
378 block_input ();
379 BPopUpMenu_delete (menu); 379 BPopUpMenu_delete (menu);
380 unblock_input ();
380 return entry; 381 return entry;
381 } 382 }
382 i += MENU_ITEMS_ITEM_LENGTH; 383 i += MENU_ITEMS_ITEM_LENGTH;
@@ -385,10 +386,14 @@ haiku_menu_show (struct frame *f, int x, int y, int menuflags,
385 } 386 }
386 else if (!(menuflags & MENU_FOR_CLICK)) 387 else if (!(menuflags & MENU_FOR_CLICK))
387 { 388 {
389 block_input ();
388 BPopUpMenu_delete (menu); 390 BPopUpMenu_delete (menu);
391 unblock_input ();
389 quit (); 392 quit ();
390 } 393 }
394 block_input ();
391 BPopUpMenu_delete (menu); 395 BPopUpMenu_delete (menu);
396 unblock_input ();
392 return Qnil; 397 return Qnil;
393} 398}
394 399