# HG changeset patch # User Richard M. Stallman # Date 778059552 0 # Node ID f8249d9f509daa7c6c17f6989ba83eb51b7ce049 # Parent deb008af7049e5ef35afbd00de688c09cc05cd7e (xmenu_show): Don't queue events that are in the menu bar. diff -r deb008af7049 -r f8249d9f509d src/xmenu.c --- a/src/xmenu.c Sun Aug 28 07:37:42 1994 +0000 +++ b/src/xmenu.c Sun Aug 28 07:39:12 1994 +0000 @@ -1650,7 +1650,7 @@ { XEvent event; int queue_and_exit = 0; - int in_this_menu; + int in_this_menu = 0, in_menu_bar = 0; Widget widget; XtAppNextEvent (Xt_app_con, &event); @@ -1658,7 +1658,7 @@ /* Check whether the event happened in the menu or any child of it. */ widget = XtWindowToWidget (XDISPLAY event.xany.window); - in_this_menu = 0; + while (widget) { if (widget == menu) @@ -1666,6 +1666,11 @@ in_this_menu = 1; break; } + if (widget == f->display.x->menubar_widget) + { + in_menu_bar = 1; + break; + } widget = XtParent (widget); } @@ -1742,7 +1747,7 @@ XtDispatchEvent (&event); - if (queue_and_exit || !in_this_menu) + if (queue_and_exit || (!in_this_menu && !in_menu_bar)) { queue_tmp = (struct event_queue *) malloc (sizeof (struct event_queue));