// headers & declarations
// ============================================================================
+#include "wx/wxprec.h"
+
#include "wx/app.h"
#include "wx/menu.h"
#include "wx/menuitem.h"
wxMenu *pSubMenu)
: wxMenuItemBase(pParentMenu, id, text, strHelp, kind, pSubMenu)
{
- // TO DISCUSS on dev : whether we can veto id 0
- // wxASSERT_MSG( id != 0 || pSubMenu != NULL , wxT("A MenuItem ID of Zero does not work under Mac") ) ;
+ wxASSERT_MSG( id != 0 || pSubMenu != NULL , wxT("A MenuItem ID of Zero does not work under Mac") ) ;
// In other languages there is no difference in naming the Exit/Quit menu item between MacOS and Windows guidelines
// therefore these item must not be translated
void wxMenuItem::Enable(bool bDoEnable)
{
- if ( m_isEnabled != bDoEnable
+ // Due to desychronisation of m_isEnabled from the
+ // true state after a modal dialog is shown in OnInit,
+ // and subsequent enabling of menu items that should be
+ // disabled, we now always update the item's status.
+
+ if ( /* m_isEnabled != bDoEnable */ true
#if TARGET_CARBON
|| GetId() == wxApp::s_macPreferencesMenuItemId
|| GetId() == wxApp::s_macExitMenuItemId