X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3d1a4878f36ba4b5f66c2ccfd2cb27a9dc528b6f..8d3b6b8aa1cc0d2f927cedd36d490d412ed3da29:/src/mac/carbon/menuitem.cpp diff --git a/src/mac/carbon/menuitem.cpp b/src/mac/carbon/menuitem.cpp index 1d27c95fbf..ccfcf8da8d 100644 --- a/src/mac/carbon/menuitem.cpp +++ b/src/mac/carbon/menuitem.cpp @@ -94,6 +94,7 @@ void wxMenuItem::UpdateItemBitmap() SetMenuItemIconHandle( mhandle , index , kMenuColorIconType , (Handle) info.u.cIconHandle ) ; } + wxMacReleaseBitmapButton( &info ) ; } } @@ -157,13 +158,18 @@ void wxMenuItem::UpdateItemText() void wxMenuItem::Enable(bool bDoEnable) { - if ( m_isEnabled != bDoEnable + if (( m_isEnabled != bDoEnable #if TARGET_CARBON - || GetId() == wxApp::s_macPreferencesMenuItemId - || GetId() == wxApp::s_macExitMenuItemId - || GetId() == wxApp::s_macAboutMenuItemId + // avoid changing menuitem state when menu is disabled + // eg. BeginAppModalStateForWindow() will disable menus and ignore this change + // which in turn causes m_isEnabled to become out of sync with real menuitem state + && !(m_parentMenu && !IsMenuItemEnabled(MAC_WXHMENU(m_parentMenu->GetHMenu()), 0)) ) + // always update builtin menuitems + || ( GetId() == wxApp::s_macPreferencesMenuItemId + || GetId() == wxApp::s_macExitMenuItemId + || GetId() == wxApp::s_macAboutMenuItemId #endif - ) + )) { wxMenuItemBase::Enable( bDoEnable ) ; UpdateItemStatus() ;