changeset 7459:1a6156c8731e

(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.
author Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
date Wed, 11 May 1994 09:33:15 +0000
parents ac210d94f33f
children dc5c72c57c70
files src/xmenu.c
diffstat 1 files changed, 7 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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;