diff -ur ooo_SRC680_m179_src.orig/vcl/aqua/inc/salmenu.h ooo_SRC680_m179_src/vcl/aqua/inc/salmenu.h --- ooo_SRC680_m179_src.orig/vcl/aqua/inc/salmenu.h 2006-07-28 18:19:50.000000000 +0200 +++ ooo_SRC680_m179_src/vcl/aqua/inc/salmenu.h 2006-07-28 19:02:21.000000000 +0200 @@ -72,7 +72,7 @@ virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, const KeyCode& rKeyCode, const XubString& rKeyName ); virtual void GetSystemMenuData( SystemMenuData* pData ); - CFStringRef mText; // Title of this menu + XubString mText; // Title of this menu MenuRef mrMenuRef; // The Carbon reference to this menu BOOL mbMenuBar; // TRUE - Menubar // FALSE - Menu @@ -86,7 +86,7 @@ USHORT mnId; // Item ID Menu *mpMenu; // Menu into which this MenuItem is inserted - CFStringRef mText; // Title of this menu item + XubString mText; // Title of this menu item MenuRef mrParentMenuRef; // The menu in which this menu item is inserted MenuItemIndex mnMenuItemIndex; // The menu index of this menu item in the mpMenu menu diff -ur ooo_SRC680_m179_src.orig/vcl/aqua/source/window/salmenu.cxx ooo_SRC680_m179_src/vcl/aqua/source/window/salmenu.cxx --- ooo_SRC680_m179_src.orig/vcl/aqua/source/window/salmenu.cxx 2006-07-28 18:22:20.000000000 +0200 +++ ooo_SRC680_m179_src/vcl/aqua/source/window/salmenu.cxx 2006-07-28 19:22:53.000000000 +0200 @@ -89,16 +89,17 @@ AquaSalMenuItem *pSalMenuItem = new AquaSalMenuItem(); pSalMenuItem->maMenuAttributes = 0; - pSalMenuItem->mnId = pItemData->nId; + pSalMenuItem->mnId = pItemData->nId; + pSalMenuItem->mText = pItemData->aText; - pSalMenuItem->mText = CFStringCreateWithFormat(NULL, NULL, CFSTR("%s"), - ByteString(pItemData->aText,RTL_TEXTENCODING_UTF8).GetBuffer()); - fprintf(stderr, "PJ: mText = %s\n", - ByteString(pItemData->aText, RTL_TEXTENCODING_UTF8).GetBuffer()); + // Delete mnemonics + pSalMenuItem->mText.EraseAllChars( '~' ); pSalMenuItem->mpMenu = pItemData->pMenu; fprintf(stderr, "PJ: nId = %d\n", pItemData->nId); + fprintf(stderr, "PJ: mText = %s\n", + ByteString(pItemData->aText,RTL_TEXTENCODING_UTF8).GetBuffer()); fprintf(stderr, "PJ: returning %p\n", pSalMenuItem); fprintf(stderr, "PJ: Separator = %d\n", pItemData->eType & MENUITEM_SEPARATOR); @@ -152,8 +153,11 @@ if (mbMenuBar) AppendMenuItemTextWithCFString( mrMenuRef, NULL, pAquaSalMenuItem->maMenuAttributes, 0, &pAquaSalMenuItem->mnMenuItemIndex); - else - AppendMenuItemTextWithCFString( mrMenuRef, pAquaSalMenuItem->mText, pAquaSalMenuItem->maMenuAttributes, 0, &pAquaSalMenuItem->mnMenuItemIndex); + else { + CFStringRef menuText = CFStringCreateWithFormat(NULL, NULL, CFSTR("%s"), ByteString( pAquaSalMenuItem->mText, RTL_TEXTENCODING_UTF8).GetBuffer()); + + AppendMenuItemTextWithCFString( mrMenuRef, menuText, pAquaSalMenuItem->maMenuAttributes, 0, &pAquaSalMenuItem->mnMenuItemIndex); + } /* Associate the pointer to this SalMenuItem with the menu item */ fprintf(stderr, "PJ: Associating %p, %d = %p\n", mrMenuRef, pAquaSalMenuItem->mnMenuItemIndex, pSalMenuItem); @@ -178,13 +182,13 @@ AquaSalMenu *subAquaSalMenu = (AquaSalMenu *) pSubMenu; - CFStringRef mText = pAquaSalMenuItem->mText; + CFStringRef menuText = CFStringCreateWithFormat(NULL, NULL, CFSTR("%s"), ByteString( pAquaSalMenuItem->mText, RTL_TEXTENCODING_UTF8).GetBuffer()); fprintf(stderr, "PJ: pSalMenuItem = %p\n", pSalMenuItem); fprintf(stderr, "PJ: pSubMenu = %p\n", pSubMenu); fprintf(stderr, "PJ: nPos = %d\n", nPos); - SetMenuTitleWithCFString(subAquaSalMenu->mrMenuRef, mText); + SetMenuTitleWithCFString(subAquaSalMenu->mrMenuRef, menuText); SetMenuItemHierarchicalMenu (mrMenuRef, pAquaSalMenuItem->mnMenuItemIndex, subAquaSalMenu->mrMenuRef); }