X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2695a14e85544fe0075f84d841893d612b62f530..18f4ad86739936a97bcc1d72a3c6db22fceb8e78:/src/common/docview.cpp diff --git a/src/common/docview.cpp b/src/common/docview.cpp index 317dbfbc7f..3d582f8807 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -528,7 +528,7 @@ wxView::wxView() wxView::~wxView() { - GetDocumentManager()->ActivateView(this, FALSE, TRUE); +// GetDocumentManager()->ActivateView(this, FALSE, TRUE); m_viewDocument->RemoveView(this); } @@ -1931,11 +1931,21 @@ void wxFileHistory::RemoveFileFromHistory(int i) // delete the last menu item which is unused now menu->Delete(wxID_FILE1 + m_fileHistoryN - 1); - // unfortunately, we can't delete separator (there is no function to - // delete item by position, only by id - and what if there are several - // separators in this menu?) - so we will be always left with at least - // one and, even worse, we will add another one if this was the last - // file... (FIXME) + // delete the last separator too if no more files are left + if ( m_fileHistoryN == 1 ) + { + wxMenuItemList::Node *node = menu->GetMenuItems().GetLast(); + if ( node ) + { + wxMenuItem *menuItem = node->GetData(); + if ( menuItem->IsSeparator() ) + { + menu->Delete(menuItem); + } + //else: should we search backwards for the last separator? + } + //else: menu is empty somehow + } } m_fileHistoryN--;