# HG changeset patch # User Fred Pierresteguy # Date 768648795 0 # Node ID 1a6156c8731e671d68bfec20146ee83845598aee # Parent ac210d94f33f013529e370990dd1c2b31bdead18 (xmenu_show): New var mb_item. Use it to determine the menubar item that led to the menu. (Fx_popup_menu): Suppress duplicate test case in the way to determine whether the menu is handling a menu bar click. diff -r ac210d94f33f -r 1a6156c8731e src/xmenu.c --- a/src/xmenu.c Wed May 11 09:03:02 1994 +0000 +++ b/src/xmenu.c Wed May 11 09:33:15 1994 +0000 @@ -722,9 +722,7 @@ /* Determine whether this menu is handling a menu bar click. */ tem = Fcar (Fcdr (Fcar (Fcdr (position)))); - if (XTYPE (Fcar (position)) != Lisp_Cons - && CONSP (tem) - && EQ (Fcar (tem), Qmenu_bar)) + if (CONSP (tem) && EQ (Fcar (tem), Qmenu_bar)) menubarp = 1; } } @@ -1400,19 +1398,21 @@ { int xbeg; int xend = 0; + widget_value *mb_item = 0; - for (menubar_item = menubar->menu.old_stack[0]->contents; - menubar_item; - menubar_item = menubar_item->next) + for (mb_item = menubar->menu.old_stack[0]->contents; + mb_item; + mb_item = mb_item->next) { xbeg = xend; - xend += (string_width (menubar, menubar_item->name) + xend += (string_width (menubar, mb_item->name) + 2 * (menubar->menu.horizontal_spacing + menubar->menu.shadow_thickness)); if (x >= xbeg && x < xend) { x = xbeg + 4; y = 0; + menubar_item = mb_item; /* Arrange to show a different menu if we move in the menu bar to a different item. */ this_menu_bar_item_beg = xbeg;