]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/notebook_osx.cpp
Add wxGrid::RefreshAttr() method to force attribute refresh.
[wxWidgets.git] / src / osx / notebook_osx.cpp
index 053c972bbe54e9ade0961a8979e253b04cef7c10..95dfb988b4412da810d693af67d2c371e48cbcd2 100644 (file)
@@ -82,7 +82,7 @@ bool wxNotebook::Create( wxWindow *parent,
         return false;
 
     m_peer = wxWidgetImpl::CreateTabView(this,parent, id, pos, size, style, GetExtraStyle() );
         return false;
 
     m_peer = wxWidgetImpl::CreateTabView(this,parent, id, pos, size, style, GetExtraStyle() );
-    
+
     MacPostControlCreate( pos, size );
 
     return true ;
     MacPostControlCreate( pos, size );
 
     return true ;
@@ -282,7 +282,7 @@ bool wxNotebook::InsertPage(size_t nPage,
     return true;
 }
 
     return true;
 }
 
-int wxNotebook::HitTest(const wxPoint& pt, long * flags) const
+int wxNotebook::HitTest(const wxPoint& WXUNUSED(pt), long * WXUNUSED(flags)) const
 {
     int resultV = wxNOT_FOUND;
 #if 0
 {
     int resultV = wxNOT_FOUND;
 #if 0
@@ -378,6 +378,20 @@ void wxNotebook::OnSize(wxSizeEvent& event)
             pPage->Layout();
     }
 
             pPage->Layout();
     }
 
+    // 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
     event.Skip();
 }
     // Processing continues to next OnSize
     event.Skip();
 }
@@ -502,15 +516,27 @@ void wxNotebook::ChangePage(int nOldSel, int nSel)
     if ( nSel != -1 )
     {
         wxNotebookPage *pPage = m_pages[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;
     m_peer->SetValue( m_nSelection + 1 ) ;
 }
 
     }
 
     m_nSelection = nSel;
     m_peer->SetValue( m_nSelection + 1 ) ;
 }
 
-bool wxNotebook::HandleClicked( double timestampsec )
+bool wxNotebook::OSXHandleClicked( double WXUNUSED(timestampsec) )
 {
     bool status = false ;
 
 {
     bool status = false ;