git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37010
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
{
void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
{
+ wxToplLevelWindowMac* tlw = wxFindWinFromMacWindow(FrontNonFloatingWindow()) ;
+
+ bool makeCurrent = false ;
+
+ // if this is already the current menubar or we are the frontmost window
+ if ( m_frameMenuBar == wxMenuBar::MacGetInstalledMenuBar() || tlw == this )
+ makeCurrent = true ;
+ // or we have a situation where this is a App Level Menubar like MDI
+ else if ( tlw != NULL && tlw->GetMenuBar() == NULL && ((wxFrame*)wxTheApp->GetTopWindow()) == this )
+ makeCurrent = true ;
+
wxFrameBase::AttachMenuBar(menuBar);
if (m_frameMenuBar)
wxFrameBase::AttachMenuBar(menuBar);
if (m_frameMenuBar)
m_frameMenuBar->SetInvokingWindow( this );
m_frameMenuBar->SetInvokingWindow( this );
+ if (makeCurrent)
+ m_frameMenuBar->MacInstallMenuBar() ;
+ }
}
void wxFrame::DoGetClientSize(int *x, int *y) const
}
void wxFrame::DoGetClientSize(int *x, int *y) const