From b0f605156b1336f598b56dbf522156f71a41d9cd Mon Sep 17 00:00:00 2001 From: "pinkerton%netscape.com" Date: Fri, 10 Mar 2000 00:28:32 +0000 Subject: [PATCH] fix for 31267. call oncreate handler for the help menu as well. r=don, a=jar. git-svn-id: svn://10.0.0.236/trunk@62506 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/widget/src/mac/nsMenu.cpp | 52 +++++++++++++++++-------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/mozilla/widget/src/mac/nsMenu.cpp b/mozilla/widget/src/mac/nsMenu.cpp index 8419e6f07a3..d7fa223961c 100644 --- a/mozilla/widget/src/mac/nsMenu.cpp +++ b/mozilla/widget/src/mac/nsMenu.cpp @@ -814,32 +814,36 @@ nsEventStatus nsMenu::HelpMenuConstruct( unsigned short menuIndex = 0; - while (menuitemNode) { - - nsCOMPtr menuitemElement(do_QueryInterface(menuitemNode)); - if (menuitemElement) { - nsString menuitemNodeType; - nsString menuitemName; + // Fire our oncreate handler. If we're told to stop, don't build the menu at all + PRBool keepProcessing = OnCreate(); + if ( keepProcessing ) { + while (menuitemNode) { - nsString label; - menuitemElement->GetAttribute("value", label); - //printf("label = %s \n", label.ToNewCString()); - - menuitemElement->GetNodeName(menuitemNodeType); - if (menuitemNodeType.Equals("menuitem")) { - // LoadMenuItem - LoadMenuItem(this, menuitemElement, menuitemNode, menuIndex, (nsIWebShell*)aWebShell); - } else if (menuitemNodeType.Equals("menuseparator")) { - AddSeparator(); - } else if (menuitemNodeType.Equals("menu")) { - // Load a submenu - LoadSubMenu(this, menuitemElement, menuitemNode); + nsCOMPtr menuitemElement(do_QueryInterface(menuitemNode)); + if (menuitemElement) { + nsString menuitemNodeType; + nsString menuitemName; + + nsString label; + menuitemElement->GetAttribute("value", label); + //printf("label = %s \n", label.ToNewCString()); + + menuitemElement->GetNodeName(menuitemNodeType); + if (menuitemNodeType.Equals("menuitem")) { + // LoadMenuItem + LoadMenuItem(this, menuitemElement, menuitemNode, menuIndex, (nsIWebShell*)aWebShell); + } else if (menuitemNodeType.Equals("menuseparator")) { + AddSeparator(); + } else if (menuitemNodeType.Equals("menu")) { + // Load a submenu + LoadSubMenu(this, menuitemElement, menuitemNode); + } } - } - ++menuIndex; - nsCOMPtr oldmenuitemNode(menuitemNode); - oldmenuitemNode->GetNextSibling(getter_AddRefs(menuitemNode)); - } // end menu item innner loop + ++menuIndex; + nsCOMPtr oldmenuitemNode(menuitemNode); + oldmenuitemNode->GetNextSibling(getter_AddRefs(menuitemNode)); + } // end menu item innner loop + } //printf(" Done building, mMenuItemVoidArray.Count() = %d \n", mMenuItemVoidArray.Count());