X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f51a6f6a0c11f2d5ce58bcb858f5dfa1c27299a5..2d2c394b59407ca3780a92a28ab12f63489c9cb1:/src/msw/spinctrl.cpp diff --git a/src/msw/spinctrl.cpp b/src/msw/spinctrl.cpp index 5e23013cd8..22ee0816c9 100644 --- a/src/msw/spinctrl.cpp +++ b/src/msw/spinctrl.cpp @@ -40,7 +40,7 @@ #include "wx/spinctrl.h" #include "wx/msw/private.h" -#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) || defined(__TWIN32__)) +#if defined(__WIN95__) && !((defined(__GNUWIN32_OLD__) || defined(__TWIN32__)) && !defined(__CYGWIN10__)) #include #endif @@ -98,7 +98,12 @@ LRESULT APIENTRY _EXPORT wxBuddyTextWndProc(HWND hwnd, if (!(::IsWindow(hwnd) && ((wxSpinCtrl *)::GetWindowLong(hwnd, GWL_USERDATA)) == spin)) return 0; break; + + case WM_GETDLGCODE: + // we want to get WXK_RETURN in order to generate the event for it + return DLGC_WANTCHARS; } + return ::CallWindowProc(CASTWNDPROC spin->GetBuddyWndProc(), hwnd, message, wParam, lParam); } @@ -248,9 +253,6 @@ bool wxSpinCtrl::Create(wxWindow *parent, if ( style & wxCLIP_SIBLINGS ) msStyle |= WS_CLIPSIBLINGS; - // we want to get WXK_RETURN in order to generate the event for it - m_lDlgCode = DLGC_WANTCHARS; - // create the text window m_hwndBuddy = (WXHWND)::CreateWindowEx ( @@ -315,6 +317,10 @@ wxSpinCtrl::~wxSpinCtrl() { ms_allSpins.Remove(this); + // This removes spurious memory leak reporting + if (ms_allSpins.GetCount() == 0) + ms_allSpins.Clear(); + // destroy the buddy window because this pointer which wxBuddyTextWndProc // uses will not soon be valid any more ::DestroyWindow(GetBuddyHwnd());