diff options
| author | Jan D | 2010-07-03 11:38:44 +0200 |
|---|---|---|
| committer | Jan D | 2010-07-03 11:38:44 +0200 |
| commit | ad3e6f4474d2737be89456332319e8efbdb382c4 (patch) | |
| tree | dde2c8d3b8a3b97ecee39b7f87e90dd75a07bd76 /src | |
| parent | 54ee7410c5a6301f37cb107317a5533c0bcc3cf9 (diff) | |
| download | emacs-ad3e6f4474d2737be89456332319e8efbdb382c4.tar.gz emacs-ad3e6f4474d2737be89456332319e8efbdb382c4.zip | |
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).
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/xmenu.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 77581160a0e..59f953bcc69 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-07-03 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid | ||
| 4 | grab on just Press (Bug#6499). | ||
| 5 | |||
| 1 | 2010-07-02 Chong Yidong <cyd@stupidchicken.com> | 6 | 2010-07-02 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 7 | ||
| 3 | * frame.c (Qtooltip): New var. | 8 | * frame.c (Qtooltip): New var. |
diff --git a/src/xmenu.c b/src/xmenu.c index 64e55b7413c..a9158b750e3 100644 --- a/src/xmenu.c +++ b/src/xmenu.c | |||
| @@ -684,6 +684,14 @@ x_activate_menubar (f) | |||
| 684 | set_frame_menubar (f, 0, 1); | 684 | set_frame_menubar (f, 0, 1); |
| 685 | BLOCK_INPUT; | 685 | BLOCK_INPUT; |
| 686 | #ifdef USE_GTK | 686 | #ifdef USE_GTK |
| 687 | /* If we click outside any menu item, the menu bar still grabs. | ||
| 688 | So we send Press and the Release. If outside, grab is released. | ||
| 689 | If on a menu item, it is popped up normally. | ||
| 690 | PutBack is like a stack, so we put back in reverse order. */ | ||
| 691 | f->output_data.x->saved_menu_event->type = ButtonRelease; | ||
| 692 | XPutBackEvent (f->output_data.x->display_info->display, | ||
| 693 | f->output_data.x->saved_menu_event); | ||
| 694 | f->output_data.x->saved_menu_event->type = ButtonPress; | ||
| 687 | XPutBackEvent (f->output_data.x->display_info->display, | 695 | XPutBackEvent (f->output_data.x->display_info->display, |
| 688 | f->output_data.x->saved_menu_event); | 696 | f->output_data.x->saved_menu_event); |
| 689 | popup_activated_flag = 1; | 697 | popup_activated_flag = 1; |