X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..4a46a5df879c4f820d0a0a435b34c7d5e4793991:/src/msw/button.cpp diff --git a/src/msw/button.cpp b/src/msw/button.cpp index 1915ad36fa..62da82af8e 100644 --- a/src/msw/button.cpp +++ b/src/msw/button.cpp @@ -128,15 +128,6 @@ bool wxButton::Create(wxWindow *parent, wxButton::~wxButton() { - wxPanel *panel = wxDynamicCast(GetParent(), wxPanel); - if ( panel ) - { - if ( panel->GetDefaultItem() == this ) - { - // don't leave the panel with invalid default item - panel->SetDefaultItem(NULL); - } - } } // ---------------------------------------------------------------------------- @@ -173,7 +164,7 @@ wxSize wxButtonBase::GetDefaultSize() if ( s_sizeBtn.x == 0 ) { wxScreenDC dc; - dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); + dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); // the size of a standard button in the dialog units is 50x14, // translate this to pixels @@ -197,20 +188,20 @@ wxSize wxButtonBase::GetDefaultSize() void wxButton::SetDefault() { wxWindow *parent = GetParent(); - wxButton *btnOldDefault = NULL; - wxPanel *panel = wxDynamicCast(parent, wxPanel); - if ( panel ) + wxButton *btnOldDefault; + if ( parent ) { - btnOldDefault = panel->GetDefaultItem(); - panel->SetDefaultItem(this); - } + wxWindow *winOldDefault = parent->SetDefaultItem(this); + btnOldDefault = wxDynamicCast(winOldDefault, wxButton); - if ( parent ) + ::SendMessage(GetWinHwnd(parent), DM_SETDEFID, m_windowId, 0L); + } + else // is a button without parent really normal? { - SendMessage(GetWinHwnd(parent), DM_SETDEFID, m_windowId, 0L); + btnOldDefault = NULL; } - if ( btnOldDefault ) + if ( btnOldDefault && btnOldDefault != this ) { // remove the BS_DEFPUSHBUTTON style from the other button long style = GetWindowLong(GetHwndOf(btnOldDefault), GWL_STYLE);