From ada77060c4dd1509b6c1b79b3ce4846bdc2f57e8 Mon Sep 17 00:00:00 2001 From: "saari%netscape.com" Date: Tue, 9 May 2000 06:15:33 +0000 Subject: [PATCH] fix for bug 38619, make MacOS menus respect the "hidden" attribute. --- widget/src/mac/nsMenu.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/widget/src/mac/nsMenu.cpp b/widget/src/mac/nsMenu.cpp index 3739d578b3da..f53fdc2e50b9 100644 --- a/widget/src/mac/nsMenu.cpp +++ b/widget/src/mac/nsMenu.cpp @@ -1521,6 +1521,8 @@ nsMenu::AttributeChanged( if(aContent == contentNode.get()){ nsCOMPtr disabledAtom = NS_NewAtom("disabled"); nsCOMPtr valueAtom = NS_NewAtom("value"); + nsCOMPtr hiddenAtom = NS_NewAtom("hidden"); + if(aAttribute == disabledAtom.get()) { nsCOMPtr element(do_QueryInterface(aContent)); nsString valueString; @@ -1553,8 +1555,22 @@ nsMenu::AttributeChanged( ::DrawMenuBar(); } #endif + } else if(aAttribute == hiddenAtom.get()) { + nsCOMPtr element(do_QueryInterface(aContent)); + nsString valueString; + element->GetAttribute(NS_ConvertASCIItoUCS2("hidden"), valueString); + if(valueString.EqualsWithConversion("true")) { + // hide this menu + ::DeleteMenu(mMacMenuID); + } else { + // show this menu + ::InsertMenu(mMacMenuHandle, mMacMenuID+1); + } + if(mMenuBarParent) { + mMenuBarParent->SetNativeData(::GetMenuBar()); + ::DrawMenuBar(); + } } - } } return NS_OK;