X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dfd0756f75c2a714e0c9d9c66c3ae1c17fca532c..65ebf13ab624c3be98a9c4028fc107a1e9ec4a9c:/src/osx/notebook_osx.cpp?ds=sidebyside diff --git a/src/osx/notebook_osx.cpp b/src/osx/notebook_osx.cpp index 9e49d0caca..50cc1bacfe 100644 --- a/src/osx/notebook_osx.cpp +++ b/src/osx/notebook_osx.cpp @@ -173,11 +173,19 @@ wxNotebookPage* wxNotebook::DoRemovePage(size_t nPage) wxNotebookPage* page = m_pages[nPage] ; m_pages.RemoveAt(nPage); + m_images.RemoveAt(nPage); MacSetupTabs(); - if (m_selection >= (int)GetPageCount()) - m_selection = GetPageCount() - 1; + if ( m_selection >= (int)nPage ) + { + if ( GetPageCount() == 0 ) + m_selection = wxNOT_FOUND; + else + m_selection = m_selection ? m_selection - 1 : 0; + + GetPeer()->SetValue( m_selection + 1 ) ; + } if (m_selection >= 0) m_pages[m_selection]->Show(true); @@ -190,7 +198,8 @@ wxNotebookPage* wxNotebook::DoRemovePage(size_t nPage) // remove all pages bool wxNotebook::DeleteAllPages() { - WX_CLEAR_ARRAY(m_pages) ; + WX_CLEAR_ARRAY(m_pages); + m_images.clear(); MacSetupTabs(); m_selection = wxNOT_FOUND ; InvalidateBestSize(); @@ -458,7 +467,7 @@ bool wxNotebook::OSXHandleClicked( double WXUNUSED(timestampsec) ) if ( newSel != m_selection ) { wxBookCtrlEvent changing( - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId, + wxEVT_NOTEBOOK_PAGE_CHANGING, m_windowId, newSel , m_selection ); changing.SetEventObject( this ); HandleWindowEvent( changing ); @@ -466,7 +475,7 @@ bool wxNotebook::OSXHandleClicked( double WXUNUSED(timestampsec) ) if ( changing.IsAllowed() ) { wxBookCtrlEvent event( - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_windowId, + wxEVT_NOTEBOOK_PAGE_CHANGED, m_windowId, newSel, m_selection ); event.SetEventObject( this ); HandleWindowEvent( event );