X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8658ef93e3d5c6db51d1acb460b16b983774edd5..e1b8d4d841979b9fed749e1f8a18abc58975a4d9:/src/common/docview.cpp diff --git a/src/common/docview.cpp b/src/common/docview.cpp index b745d1fbb1..549eb66f48 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -248,7 +248,7 @@ bool wxDocument::SaveAs() wxString tmp = wxFileSelector(_("Save as"), docTemplate->GetDirectory(), - GetFilename(), + wxFileNameFromPath(GetFilename()), docTemplate->GetDefaultExtension(), docTemplate->GetFileFilter(), wxSAVE | wxOVERWRITE_PROMPT, @@ -2162,11 +2162,6 @@ void wxFileHistory::RemoveFileFromHistory(int i) wxCHECK_RET( i < m_fileHistoryN, wxT("invalid index in wxFileHistory::RemoveFileFromHistory") ); - wxNode* node = m_fileMenus.First(); - while ( node ) - { - wxMenu* menu = (wxMenu*) node->Data(); - // delete the element from the array (could use memmove() too...) delete [] m_fileHistory[i]; @@ -2176,6 +2171,12 @@ void wxFileHistory::RemoveFileFromHistory(int i) m_fileHistory[j] = m_fileHistory[j + 1]; } + wxNode* node = m_fileMenus.First(); + while ( node ) + { + wxMenu* menu = (wxMenu*) node->Data(); + + // shuffle filenames up wxString buf; for ( j = i; j < m_fileHistoryN - 1; j++ ) @@ -2187,6 +2188,7 @@ void wxFileHistory::RemoveFileFromHistory(int i) node = node->Next(); // delete the last menu item which is unused now + if (menu->FindItem(wxID_FILE1 + m_fileHistoryN - 1)) menu->Delete(wxID_FILE1 + m_fileHistoryN - 1); // delete the last separator too if no more files are left