X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7bc740719c93355e447db5c9bcb24cf7cdc29b61..ea9ae179ed35355be6ea645a8661b3a420c64a92:/src/msw/combobox.cpp diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp index d0b9836baf..d98241f0c4 100644 --- a/src/msw/combobox.cpp +++ b/src/msw/combobox.cpp @@ -32,7 +32,7 @@ #include "wx/msw/wrapcctl.h" // include "properly" #include "wx/settings.h" #include "wx/log.h" - // for wxEVT_COMMAND_TEXT_ENTER + // for wxEVT_TEXT_ENTER #include "wx/textctrl.h" #include "wx/app.h" #include "wx/brush.h" @@ -234,7 +234,7 @@ bool wxComboBox::MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam) if (SendMessage(GetHwnd(), CB_GETDROPPEDSTATE, 0, 0)) return false; - wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId); + wxCommandEvent event(wxEVT_TEXT_ENTER, m_windowId); const int sel = GetSelection(); event.SetInt(sel); @@ -274,26 +274,27 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id) case CBN_DROPDOWN: // remember the last selection, just as wxChoice does m_lastAcceptedSelection = GetCurrentSelection(); - if ( m_lastAcceptedSelection == -1 ) { - // but unlike with wxChoice we may have no selection but still - // have some text and we should avoid erasing it if the drop - // down is cancelled (see #8474) - m_lastAcceptedSelection = wxID_NONE; - } - { - wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_DROPDOWN, GetId()); + wxCommandEvent event(wxEVT_COMBOBOX_DROPDOWN, GetId()); event.SetEventObject(this); ProcessCommand(event); } break; + case CBN_CLOSEUP: + // Do the same thing as in wxChoice but using different event type. + if ( m_pendingSelection != wxID_NONE ) { - wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_CLOSEUP, GetId()); + SendSelectionChangedEvent(wxEVT_COMBOBOX); + m_pendingSelection = wxID_NONE; + } + { + wxCommandEvent event(wxEVT_COMBOBOX_CLOSEUP, GetId()); event.SetEventObject(this); ProcessCommand(event); } break; + case CBN_SELENDOK: #ifndef __SMARTPHONE__ // we need to reset this to prevent the selection from being undone @@ -311,7 +312,7 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id) // could get a wrong value when it calls our GetValue() ::SetWindowText(GetHwnd(), value.t_str()); - SendSelectionChangedEvent(wxEVT_COMMAND_COMBOBOX_SELECTED); + SendSelectionChangedEvent(wxEVT_COMBOBOX); // fall through: for compatibility with wxGTK, also send the text // update event when the selection changes (this also seems more @@ -320,7 +321,7 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id) case CBN_EDITCHANGE: if ( m_allowTextEvents ) { - wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, GetId()); + wxCommandEvent event(wxEVT_TEXT, GetId()); // if sel != -1, value was already initialized above if ( sel == -1 )