#include "wx/msw/private.h"
#if wxUSE_TOOLTIPS
- #ifndef __GNUWIN32_OLD__
+ #if !defined(__GNUWIN32_OLD__) || defined(__CYGWIN10__)
#include <commctrl.h>
#endif
#include "wx/tooltip.h"
#endif // 0
// deal with tooltips here
-#if wxUSE_TOOLTIPS
+#if wxUSE_TOOLTIPS && defined(TTN_NEEDTEXT)
case WM_NOTIFY:
{
wxCHECK_MSG( win, 0, _T("should have a parent") );
case CBN_EDITCHANGE:
{
+ wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, GetId());
+
// if sel != -1, value was initialized above (and we can't use
// GetValue() here as it would return the old selection and we
// want the new one)
- wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, GetId());
- event.SetString(sel == -1 ? GetValue() : value);
+ if ( sel == -1 )
+ {
+ value = GetValue();
+ }
+ else // we're synthesizing text updated event from sel change
+ {
+ // we need to do this because the user code expects
+ // wxComboBox::GetValue() to return the new value from
+ // "text updated" handler but it hadn't been updated yet
+ SetValue(value);
+ }
+
+ event.SetString(value);
event.SetEventObject(this);
ProcessCommand(event);
}