]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/notebook.cpp
1. DoSetSize() simplified, DoGetBestSize() introduced
[wxWidgets.git] / src / msw / notebook.cpp
index d6c5fc5234928a1857e22c93b29aa1ab0cb03071..d94b86b315c4bdcdcf1730434e5f44631476255f 100644 (file)
@@ -274,11 +274,22 @@ bool wxNotebook::DeletePage(int nPage)
 {
   wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, _T("notebook page out of range") );
 
+  if ( m_nSelection == nPage ) {
+      // advance selection backwards - the page being deleted shouldn't be left
+      // selected
+      AdvanceSelection(FALSE);
+  }
+
   TabCtrl_DeleteItem(m_hwnd, nPage);
 
   delete m_aPages[nPage];
   m_aPages.Remove(nPage);
 
+  if ( m_aPages.IsEmpty() ) {
+      // no selection if the notebook became empty
+      m_nSelection = -1;
+  }
+
   return TRUE;
 }
 
@@ -370,6 +381,11 @@ bool wxNotebook::InsertPage(int nPage,
   // this updates internal flag too - otherwise it will get out of sync
   pPage->Show(FALSE);
 
+  // FIXME this is ugly, I'm breaking my own rules... but needed to get display
+  //       right (why?)
+  wxSizeEvent event;
+  OnSize(event);
+
   return TRUE;
 }