X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fbb67d0e5247da88d7c403dc61b95244dcc6c7dc..c64c9cd3ba5c5aa5d1cc0b59e9b78fd66650bc58:/src/univ/menu.cpp diff --git a/src/univ/menu.cpp b/src/univ/menu.cpp index e25a936355..ba228442fa 100644 --- a/src/univ/menu.cpp +++ b/src/univ/menu.cpp @@ -26,6 +26,7 @@ #if wxUSE_MENUS #include "wx/menu.h" +#include "wx/stockitem.h" #ifndef WX_PRECOMP #include "wx/dynarray.h" @@ -122,7 +123,7 @@ class wxPopupMenuWindow : public wxPopupTransientWindow public: wxPopupMenuWindow(wxWindow *parent, wxMenu *menu); - ~wxPopupMenuWindow(); + virtual ~wxPopupMenuWindow(); // override the base class version to select the first item initially virtual void Popup(wxWindow *focus = NULL); @@ -346,7 +347,7 @@ void wxPopupMenuWindow::SetCurrentItem(wxMenuItemIter node) void wxPopupMenuWindow::ChangeCurrent(wxMenuItemIter node) { - if ( !m_nodeCurrent || (node != m_nodeCurrent) ) + if ( !m_nodeCurrent || !node || (node != m_nodeCurrent) ) { wxMenuItemIter nodeOldCurrent = m_nodeCurrent; @@ -1542,6 +1543,7 @@ void wxMenuItem::SetText(const wxString& text) if ( text != m_text ) { // first call the base class version to change m_text + // (and also check if we don't have a stock menu item) wxMenuItemBase::SetText(text); UpdateAccelInfo();