This commit is contained in:
saari%netscape.com 1999-04-27 04:23:05 +00:00
Родитель f6d54191ac
Коммит 7273f7dc49
3 изменённых файлов: 21 добавлений и 13 удалений

Просмотреть файл

@ -99,10 +99,10 @@ nsMenu::nsMenu() : nsIMenu()
//-------------------------------------------------------------------------
nsMenu::~nsMenu()
{
g_print("nsMenu::~nsMenu called\n");
g_print("nsMenu::~nsMenu() called\n");
NS_IF_RELEASE(mListener);
// Free our menu items
//RemoveAll();
RemoveAll();
}
//-------------------------------------------------------------------------
@ -213,9 +213,13 @@ NS_METHOD nsMenu::AddMenuItem(nsIMenuItem * aMenuItem)
gtk_menu_shell_append (GTK_MENU_SHELL (mMenu), widget);
// XXX add aMenuItem to internal data structor list
NS_IF_ADDREF(aMenuItem);
mMenuItemVoidArray.AppendElement(aMenuItem);
// Need to be adding an nsISupports *, not nsIMenuItem *
nsISupports * supports = nsnull;
aMenuItem->QueryInterface(kISupportsIID, (void**)&supports);
{
mMenuItemVoidArray.AppendElement(supports);
mNumMenuItems++;
}
return NS_OK;
}

Просмотреть файл

@ -91,7 +91,6 @@ nsMenuBar::nsMenuBar() : nsIMenuBar(), nsIMenuListener()
//-------------------------------------------------------------------------
nsMenuBar::~nsMenuBar()
{
g_print("nsMenuBar::~nsMenuBar() called\n");
// Release the menus
RemoveAll();
}
@ -198,7 +197,12 @@ NS_METHOD nsMenuBar::RemoveAll()
//}
NS_RELEASE(menu);
((nsISupports*)mMenusVoidArray[i-1])->Release();
g_print("menu release \n");
int num =((nsISupports*)mMenusVoidArray[i-1])->Release();
while(num) {
g_print("menu release again!\n");
num = ((nsISupports*)mMenusVoidArray[i-1])->Release();
}
}
}
}
@ -288,18 +292,17 @@ nsEventStatus nsMenuBar::MenuConstruct(
pnsMenu->Create(supports, menuName);
NS_RELEASE(supports);
pnsMenu->SetLabel(menuName);
pnsMenu->SetDOMNode(menuNode);
pnsMenu->SetDOMElement(menuElement);
// Set nsMenu Name
pnsMenu->SetLabel(menuName);
// Make nsMenu a child of nsMenuBar
pnsMenuBar->AddMenu(pnsMenu);
// Set the WebShell
pnsMenu->SetWebShell(mWebShell);
// Make nsMenu a child of nsMenuBar
// nsMenuBar takes ownership of the nsMenu
pnsMenuBar->AddMenu(pnsMenu);
// Release the menu now that the menubar owns it
//NS_RELEASE(pnsMenu);
NS_RELEASE(pnsMenu);
}
}

Просмотреть файл

@ -98,6 +98,7 @@ nsMenuItem::nsMenuItem() : nsIMenuItem()
nsMenuItem::~nsMenuItem()
{
NS_IF_RELEASE(mTarget);
g_print("nsMenuItem::~nsMenuItem called\n");
}
//-------------------------------------------------------------------------