X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a1b806b98241ab649c169aaa1f134df85e80fb8b..d57d0505d4c2186592833f18c3d40532d3a4bf0e:/src/common/combocmn.cpp diff --git a/src/common/combocmn.cpp b/src/common/combocmn.cpp index ff3563c2db..438a3e2790 100644 --- a/src/common/combocmn.cpp +++ b/src/common/combocmn.cpp @@ -489,9 +489,8 @@ bool wxComboPopupWindow::Show( bool show ) m_inShow++; - wxASSERT( IsKindOf(CLASSINFO(wxPopupTransientWindow)) ); - - wxPopupTransientWindow* ptw = (wxPopupTransientWindow*) this; + wxPopupTransientWindow* const + ptw = static_cast(this); if ( show != ptw->IsShown() ) { @@ -518,7 +517,7 @@ bool wxComboPopupWindow::ProcessLeftDown(wxMouseEvent& event) void wxComboPopupWindow::OnDismiss() { wxComboCtrlBase* combo = (wxComboCtrlBase*) GetParent(); - wxASSERT_MSG( combo->IsKindOf(CLASSINFO(wxComboCtrlBase)), + wxASSERT_MSG( wxDynamicCast(combo, wxComboCtrlBase), wxT("parent might not be wxComboCtrl, but check IMPLEMENT_DYNAMIC_CLASS(2) macro for correctness") ); combo->OnPopupDismiss(true); @@ -766,7 +765,7 @@ void wxComboBoxExtraInputHandler::OnFocus(wxFocusEvent& event) if ( m_combo->GetTextCtrl() ) m_combo->GetTextCtrl()->SelectAll(); else - m_combo->SetSelection(-1,-1); + m_combo->SelectAll(); } // Send focus indication to parent. @@ -1375,7 +1374,7 @@ wxSize wxComboCtrlBase::DoGetBestSize() const else fhei = sizeText.y + 4; - // Need to force height to accomodate bitmap? + // Need to force height to accommodate bitmap? int btnSizeY = m_btnSize.y; if ( m_bmpNormal.IsOk() && fhei < btnSizeY ) fhei = btnSizeY; @@ -2034,6 +2033,8 @@ void wxComboCtrlBase::OnCharEvent(wxKeyEvent& event) void wxComboCtrlBase::OnFocusEvent( wxFocusEvent& event ) { +// On Mac, this leads to infinite recursion and eventually a crash +#ifndef __WXMAC__ if ( event.GetEventType() == wxEVT_SET_FOCUS ) { wxWindow* tc = GetTextCtrl(); @@ -2044,6 +2045,7 @@ void wxComboCtrlBase::OnFocusEvent( wxFocusEvent& event ) } Refresh(); +#endif } void wxComboCtrlBase::OnIdleEvent( wxIdleEvent& WXUNUSED(event) )