]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/notebmac.cpp
process pending wx events before sending idle events
[wxWidgets.git] / src / mac / carbon / notebmac.cpp
index 3406606bb8be9972d1dbeae8e3652a18b3e2a2d7..2aff7f536bec91cc4097873e4528be3dc9828217 100644 (file)
@@ -164,27 +164,23 @@ int wxNotebook::DoSetSelection(size_t nPage, int flags)
 {
     wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("DoSetSelection: invalid notebook page") );
 
-    if ( m_nSelection != wxNOT_FOUND && nPage != (size_t)m_nSelection )
+    if ( m_nSelection == wxNOT_FOUND || nPage != (size_t)m_nSelection )
     {
         if ( flags & SetSelection_SendEvent )
         {
-            wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId);
-            event.SetSelection(nPage);
-            event.SetOldSelection(m_nSelection);
-            event.SetEventObject(this);
-            if ( GetEventHandler()->ProcessEvent(event) && !event.IsAllowed() )
+            if ( !SendPageChangingEvent(nPage) )
             {
                 // vetoed by program
                 return m_nSelection;
             }
             //else: program allows the page change
 
-            event.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED);
-            (void)GetEventHandler()->ProcessEvent(event);
+            SendPageChangedEvent(m_nSelection, nPage);
         }
 
         ChangePage(m_nSelection, nPage);
     }
+    //else: no change
 
     return m_nSelection;
 }
@@ -431,9 +427,13 @@ void wxNotebook::MacSetupTabs()
         m_peer->SetTabEnabled( ii + 1, true ) ;
     }
 
+#if wxMAC_USE_CORE_GRAPHICS
+    Refresh();
+#else
     Rect bounds;
     m_peer->GetRectInWindowCoords( &bounds ) ;
     InvalWindowRect( (WindowRef)MacGetTopLevelWindowRef(), &bounds );
+#endif
 }
 
 wxRect wxNotebook::GetPageRect() const