emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master a4cb14b536: * src/haikumenu.c (haiku_menu_show): Fix input blocki


From: Po Lu
Subject: master a4cb14b536: * src/haikumenu.c (haiku_menu_show): Fix input blocking.
Date: Sun, 2 Jan 2022 20:06:19 -0500 (EST)

branch: master
commit a4cb14b5365e0cac5c8c181b69ecd504a47a89ec
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    * 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 bff6bd8a48..5cfcc75132 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;
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]