]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/button.cpp
enter wxPendingEventLocker critical section in ProcessPendingEvents() (fixes 1720352)
[wxWidgets.git] / src / mac / carbon / button.cpp
index 55785b73ace804bdf6ab677ee3e3215dc54599fc..fe3f47987009d93558353f0058c5b99d38119720 100644 (file)
@@ -101,20 +101,19 @@ bool wxButton::Create(wxWindow *parent,
     return true;
 }
 
-void wxButton::SetDefault()
+wxWindow *wxButton::SetDefault()
 {
-    wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow);
-    wxButton *btnOldDefault = NULL;
-    if ( tlw )
-    {
-        btnOldDefault = wxDynamicCast(tlw->GetDefaultItem(), wxButton);
-        tlw->SetDefaultItem(this);
-    }
+    wxWindow *btnOldDefault = wxButtonBase::SetDefault();
 
     if ( btnOldDefault )
-        btnOldDefault->m_peer->SetData(kControlButtonPart , kControlPushButtonDefaultTag , (Boolean) 0 ) ;
+    {
+        // cast needed to access the protected member
+        btnOldDefault->GetPeer()->SetData(kControlButtonPart , kControlPushButtonDefaultTag , (Boolean) 0 ) ;
+    }
 
     m_peer->SetData(kControlButtonPart , kControlPushButtonDefaultTag , (Boolean) 1 ) ;
+
+    return btnOldDefault;
 }
 
 wxSize wxButton::DoGetBestSize() const