summaryrefslogtreecommitdiff
path: root/src/haikumenu.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-07-28 13:24:10 +0000
committerPo Lu <luangruo@yahoo.com>2022-07-28 13:25:06 +0000
commit977aed9f7981fee0ba9ac8711a86da908fc5057e (patch)
tree10d8239c4efb5b249a676d344f0ec101ea423a39 /src/haikumenu.c
parentb8fdef7aa65f5b1d2eeb726ff1627d9e169c2b3a (diff)
downloademacs-977aed9f7981fee0ba9ac8711a86da908fc5057e.tar.gz
emacs-977aed9f7981fee0ba9ac8711a86da908fc5057e.tar.bz2
emacs-977aed9f7981fee0ba9ac8711a86da908fc5057e.zip
Fix grab view persisting on Haiku after popup menu closes
* src/haiku_support.cc (BasicMouseUp): Improve handling of wait_for_release_message. (be_clear_grab_view): New function. * src/haiku_support.h: Update prototypes. * src/haikumenu.c (haiku_menu_show): Call it here.
Diffstat (limited to 'src/haikumenu.c')
-rw-r--r--src/haikumenu.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/haikumenu.c b/src/haikumenu.c
index 929ed952105..69bb56c124e 100644
--- a/src/haikumenu.c
+++ b/src/haikumenu.c
@@ -432,6 +432,11 @@ haiku_menu_show (struct frame *f, int x, int y, int menuflags,
FRAME_DISPLAY_INFO (f)->grabbed = 0;
+ /* Clear the grab view manually. There is a race condition here if
+ the window thread receives a button press between here and the
+ end of BMenu_run. */
+ be_clear_grab_view ();
+
if (menu_item_selection)
{
prefix = entry = Qnil;