]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/notebook_osx.cpp
Make wxDateTime::Tm::yday public and document it.
[wxWidgets.git] / src / osx / notebook_osx.cpp
index 0f3c83577e6207caab975aa2fdd4507cdcb69a8b..d78e3b4040fde2ca17dffbd9d860cfafb7ce65a4 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Stefan Csomor
 // Modified by:
 // Created:     1998-01-01
-// RCS-ID:      $Id: notebmac.cpp 55079 2008-08-13 14:56:42Z PC $
+// RCS-ID:      $Id$
 // Copyright:   (c) Stefan Csomor
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -82,7 +82,7 @@ bool wxNotebook::Create( wxWindow *parent,
         return false;
 
     m_peer = wxWidgetImpl::CreateTabView(this,parent, id, pos, size, style, GetExtraStyle() );
-    
+
     MacPostControlCreate( pos, size );
 
     return true ;
@@ -373,9 +373,21 @@ void wxNotebook::OnSize(wxSizeEvent& event)
     for ( unsigned int nPage = 0; nPage < nCount; nPage++ )
     {
         wxNotebookPage *pPage = m_pages[nPage];
-        pPage->SetSize(rect);
-        if ( pPage->GetAutoLayout() )
-            pPage->Layout();
+        pPage->SetSize(rect, wxSIZE_FORCE_EVENT);
+    }
+
+    // If the selected page is hidden at this point, the notebook
+    // has become visible for the first time after creation, and
+    // we postponed showing the page in ChangePage().
+    // So show the selected page now.
+    if ( m_nSelection != -1 )
+    {
+        wxNotebookPage *pPage = m_pages[m_nSelection];
+        if ( !pPage->IsShown() )
+        {
+            pPage->Show( true );
+            pPage->SetFocus();
+        }
     }
 
     // Processing continues to next OnSize
@@ -502,8 +514,20 @@ void wxNotebook::ChangePage(int nOldSel, int nSel)
     if ( nSel != -1 )
     {
         wxNotebookPage *pPage = m_pages[nSel];
-        pPage->Show( true );
-        pPage->SetFocus();
+        if ( IsShownOnScreen() )
+        {
+            pPage->Show( true );
+            pPage->SetFocus();
+        }
+        else
+        {
+            // Postpone Show() until the control is actually shown.
+            // Otherwise this forces the containing toplevel window
+            // to show, even if it's just being created and called
+            // AddPage() without intent to show the window yet.
+            // We Show() the selected page in our OnSize handler,
+            // unless it already is shown.
+        }
     }
 
     m_nSelection = nSel;