diff options
| author | Po Lu | 2022-01-03 00:59:58 +0000 |
|---|---|---|
| committer | Po Lu | 2022-01-03 00:59:58 +0000 |
| commit | a4cb14b5365e0cac5c8c181b69ecd504a47a89ec (patch) | |
| tree | bdec09e32af5137d8b98509a21b4ec8c29437d60 /src | |
| parent | 7ddfe1cab2156db4cb1da1968e6d6dabb533ff33 (diff) | |
| download | emacs-a4cb14b5365e0cac5c8c181b69ecd504a47a89ec.tar.gz emacs-a4cb14b5365e0cac5c8c181b69ecd504a47a89ec.zip | |
* src/haikumenu.c (haiku_menu_show): Fix input blocking.
Diffstat (limited to 'src')
| -rw-r--r-- | src/haikumenu.c | 9 |
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 | ||