]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/menu.cpp
(probably) fixed wxLocale::Init with Borland C++
[wxWidgets.git] / src / univ / menu.cpp
index 2f30a0a6d8fde2bb115fb2dbc1ccae23a4c83ee4..62dc90a1c8b4e03feba697fb827ff9697898cddb 100644 (file)
@@ -314,6 +314,12 @@ wxPopupMenuWindow::wxPopupMenuWindow(wxWindow *parent, wxMenu *menu)
 
 wxPopupMenuWindow::~wxPopupMenuWindow()
 {
+    // When m_popupMenu in wxMenu is deleted because it
+    // is a child of an old menu bar being deleted (note: it does
+    // not get destroyed by the wxMenu destructor, but
+    // by DestroyChildren()), m_popupMenu should be reset to NULL.
+
+    m_menu->m_popupMenu = NULL;
 }
 
 // ----------------------------------------------------------------------------
@@ -1515,7 +1521,7 @@ void wxMenuBar::Init()
 
     m_shouldShowMenu = FALSE;
     
-    // m_windowStyle |= wxNO_FULL_REPAINT_ON_RESIZE;
+    m_windowStyle |= wxNO_FULL_REPAINT_ON_RESIZE;
 }
 
 void wxMenuBar::Attach(wxFrame *frame)
@@ -2242,7 +2248,7 @@ void wxMenuBar::PopupCurrentMenu(bool selectFirst)
     wxCHECK_RET( m_current != -1, _T("no menu to popup") );
 
     // forgot to call DismissMenu()?
-    wxASSERT_MSG( !m_menuShown, _T("shouldn't show two menu at once!") );
+    wxASSERT_MSG( !m_menuShown, _T("shouldn't show two menus at once!") );
 
     // in any case, we should show it - even if we won't
     m_shouldShowMenu = TRUE;