diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xmenu.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/xmenu.c b/src/xmenu.c index 0c03019f07e..2ca8eddcb4e 100644 --- a/src/xmenu.c +++ b/src/xmenu.c | |||
| @@ -1655,16 +1655,18 @@ xmenu_show (f, x, y, menubarp, keymaps, title, error) | |||
| 1655 | if (event.type == ButtonRelease) | 1655 | if (event.type == ButtonRelease) |
| 1656 | { | 1656 | { |
| 1657 | XtDispatchEvent (&event); | 1657 | XtDispatchEvent (&event); |
| 1658 | if (! menubarp) | 1658 | |
| 1659 | { | 1659 | /* Do the work of construct_mouse_click since it can't |
| 1660 | /* Do the work of construct_mouse_click since it can't | 1660 | be called. Initially, the popup menu has been called |
| 1661 | be called. Initially, the popup menu has been called | 1661 | from a ButtonPress in the edit_widget. Then the mouse |
| 1662 | from a ButtonPress in the edit_widget. Then the mouse | 1662 | has been set to grabbed. Reset it now. */ |
| 1663 | has been set to grabbed. Reset it now. */ | 1663 | x_mouse_grabbed &= ~(1 << event.xbutton.button); |
| 1664 | x_mouse_grabbed &= ~(1 << event.xbutton.button); | 1664 | if (!x_mouse_grabbed) |
| 1665 | if (!x_mouse_grabbed) | 1665 | Vmouse_depressed = Qnil; |
| 1666 | Vmouse_depressed = Qnil; | 1666 | |
| 1667 | } | 1667 | /* If we release the button soon without selecting anything, |
| 1668 | stay in the loop--that is, leave the menu posted. | ||
| 1669 | Otherwise, exit this loop and thus pop down the menu. */ | ||
| 1668 | if (! (menu_item_selection == 0 | 1670 | if (! (menu_item_selection == 0 |
| 1669 | && !next_release_must_exit | 1671 | && !next_release_must_exit |
| 1670 | && (((XButtonEvent *) (&event))->time - last_event_timestamp | 1672 | && (((XButtonEvent *) (&event))->time - last_event_timestamp |