Fix for moving to a base menu resetting the child menu.

Reviewed by me.
This commit is contained in:
Francisco Ryan Tolmasky I
2009-12-03 17:58:49 -08:00
parent 506e3004b7
commit 0eff4e2bc0
+9 -3
View File
@@ -262,18 +262,24 @@ var SharedMenuManager = nil;
}
- (void)showMenu:(CPMenu)newMenu fromMenu:(CPMenu)baseMenu atPoint:(CGPoint)aGlobalLocation
{//console.log("SM: " + [self trackingMenu] + " SHOW MENU: " + newMenu + " from menu " + baseMenu);
{
var count = _menuContainerStack.length,
index = count;
// Hide all menus up to the base menu...
while (index--)
{
var menuContainer = _menuContainerStack[index];
var menuContainer = _menuContainerStack[index],
menu = [menuContainer menu];
if ([menuContainer menu] === baseMenu)
// If we reach the base menu, or this menu is already being shown, break.
if (menu === baseMenu)
break;
// If this menu is already being shown, unhighlight and return.
if (menu === newMenu)//&& [menu supermenu] === baseMenu)
return [newMenu _highlightItemAtIndex:CPNotFound];
[menuContainer orderOut:self];
[menuContainer setMenu:nil];