diff --git a/src/mac/carbon/frame.cpp b/src/mac/carbon/frame.cpp index 16aee93377..9c06869fcb 100644 --- a/src/mac/carbon/frame.cpp +++ b/src/mac/carbon/frame.cpp @@ -230,7 +230,7 @@ void wxFrame::SetMenuBar(wxMenuBar *menuBar) m_frameMenuBar = NULL; m_frameMenuBar = menuBar; - m_frameMenuBar->MacInstallMenuBar() ; +// m_frameMenuBar->MacInstallMenuBar() ; m_frameMenuBar->Attach(this); } @@ -283,9 +283,14 @@ void wxFrame::OnActivate(wxActivateEvent& event) ) { child->SetFocus(); - return; + break; } } + + if ( m_frameMenuBar != NULL ) + { + m_frameMenuBar->MacInstallMenuBar() ; + } } void wxFrame::DoGetClientSize(int *x, int *y) const diff --git a/src/mac/carbon/menu.cpp b/src/mac/carbon/menu.cpp index 9d308de120..621494b83d 100644 --- a/src/mac/carbon/menu.cpp +++ b/src/mac/carbon/menu.cpp @@ -631,6 +631,9 @@ void wxMenuBar::RebuildAccelTable() void wxMenuBar::MacInstallMenuBar() { + if ( s_macInstalledMenuBar == this ) + return ; + Handle menubar = ::GetNewMBar( kwxMacMenuBarResource ) ; wxString message ; wxCHECK_RET( menubar != NULL, "can't read MBAR resource" ); diff --git a/src/mac/frame.cpp b/src/mac/frame.cpp index 16aee93377..9c06869fcb 100644 --- a/src/mac/frame.cpp +++ b/src/mac/frame.cpp @@ -230,7 +230,7 @@ void wxFrame::SetMenuBar(wxMenuBar *menuBar) m_frameMenuBar = NULL; m_frameMenuBar = menuBar; - m_frameMenuBar->MacInstallMenuBar() ; +// m_frameMenuBar->MacInstallMenuBar() ; m_frameMenuBar->Attach(this); } @@ -283,9 +283,14 @@ void wxFrame::OnActivate(wxActivateEvent& event) ) { child->SetFocus(); - return; + break; } } + + if ( m_frameMenuBar != NULL ) + { + m_frameMenuBar->MacInstallMenuBar() ; + } } void wxFrame::DoGetClientSize(int *x, int *y) const diff --git a/src/mac/menu.cpp b/src/mac/menu.cpp index 9d308de120..621494b83d 100644 --- a/src/mac/menu.cpp +++ b/src/mac/menu.cpp @@ -631,6 +631,9 @@ void wxMenuBar::RebuildAccelTable() void wxMenuBar::MacInstallMenuBar() { + if ( s_macInstalledMenuBar == this ) + return ; + Handle menubar = ::GetNewMBar( kwxMacMenuBarResource ) ; wxString message ; wxCHECK_RET( menubar != NULL, "can't read MBAR resource" );