X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b9d0da6f6f985d7a5023742bda18718919990260..51bf928d02b8cbf8d7f343daead32c8df1550cdc:/src/common/combocmn.cpp diff --git a/src/common/combocmn.cpp b/src/common/combocmn.cpp index 6c4c8df147..e87b7df0d8 100644 --- a/src/common/combocmn.cpp +++ b/src/common/combocmn.cpp @@ -235,10 +235,10 @@ static inline bool IsPopupWinTypePerfect( wxByte popupWinType ) #else return ( popupWinType == POPUPWIN_GENERICTLW #if POPUPWIN_IS_PERFECT - || popupWinType == POPUPWIN_WXPOPUPWINDOW + || popupWinType == POPUPWIN_WXPOPUPWINDOW #endif #if TRANSIENT_POPUPWIN_IS_PERFECT - || popupWinType == POPUPWIN_WXPOPUPTRANSIENTWINDOW + || popupWinType == POPUPWIN_WXPOPUPTRANSIENTWINDOW #endif ); #endif @@ -673,7 +673,8 @@ void wxComboBoxExtraInputHandler::OnFocus(wxFocusEvent& event) // wxEVT_SET_FOCUSes (since m_text->SetFocus is called // from combo's focus event handler), they should be quite // harmless. - wxFocusEvent evt2(event.GetEventType(),m_combo->GetId()); + wxFocusEvent evt2(event); + evt2.SetId(m_combo->GetId()); evt2.SetEventObject(m_combo); m_combo->GetEventHandler()->ProcessEvent(evt2); @@ -1202,7 +1203,7 @@ void wxComboCtrlBase::PositionTextCtrl( int textCtrlXAdjust, int textCtrlYAdjust // There is special custom paint area - it is better to // use some margin with the wxTextCtrl. m_text->SetMargins(m_marginLeft); - x = m_tcArea.x + m_widthCustomPaint + + x = m_tcArea.x + m_widthCustomPaint + m_marginLeft + textCtrlXAdjust; } @@ -2092,17 +2093,24 @@ void wxComboCtrlBase::OnButtonClick() { // Derived classes can override this method for totally custom // popup action - if ( !IsPopupWindowState(Visible) ) + switch ( GetPopupWindowState() ) { - wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_DROPDOWN, GetId()); - event.SetEventObject(this); - HandleWindowEvent(event); + case Hidden: + { + wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_DROPDOWN, GetId()); + event.SetEventObject(this); + HandleWindowEvent(event); - ShowPopup(); - } - else - { - HidePopup(true); + ShowPopup(); + break; + } + + case Animating: + case Visible: + { + HidePopup(true); + break; + } } }