diff src/xmenu.c @ 109291:35d06d80fc61

Fix hang for mouse press on menubar but not on an item (Bug#6499). * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid grab on just Press (Bug#6499).
author Jan D <jan.h.d@swipnet.se>
date Sat, 03 Jul 2010 11:38:44 +0200
parents 1d1d5d9bd884
children 60516122d066 60266cf487b0
line wrap: on
line diff
--- a/src/xmenu.c	Fri Jul 02 12:35:08 2010 -0400
+++ b/src/xmenu.c	Sat Jul 03 11:38:44 2010 +0200
@@ -684,6 +684,14 @@
   set_frame_menubar (f, 0, 1);
   BLOCK_INPUT;
 #ifdef USE_GTK
+  /* If we click outside any menu item, the menu bar still grabs.
+     So we send Press and the Release.  If outside, grab is released.
+     If on a menu item, it is popped up normally.
+     PutBack is like a stack, so we put back in reverse order.  */
+  f->output_data.x->saved_menu_event->type = ButtonRelease;
+  XPutBackEvent (f->output_data.x->display_info->display,
+                 f->output_data.x->saved_menu_event);
+  f->output_data.x->saved_menu_event->type = ButtonPress;
   XPutBackEvent (f->output_data.x->display_info->display,
                  f->output_data.x->saved_menu_event);
   popup_activated_flag = 1;