wxEVT_CHAR shouldn't be generated at all if wxEVT_KEY_DOWN was handled but it
still was for wxComboBox because the code in its MSW implementation directly
called HandleKeyDown() and HandleChar() methods, bypassing the logic dealing
with m_lastKeyDownProcessed at wxWindow level.
Fix this by calling MSWHandleMessage() instead to ensure that WM_CHAR after a
handled WM_KEYDOWN are ignored as they ought to.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71883
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// fall through
case WM_SYSCHAR:
- return HandleChar(wParam, lParam);
-
case WM_SYSKEYDOWN:
case WM_KEYDOWN:
- return HandleKeyDown(wParam, lParam);
-
case WM_SYSKEYUP:
case WM_KEYUP:
- return HandleKeyUp(wParam, lParam);
-
case WM_SETFOCUS:
- return HandleSetFocus((WXHWND)wParam);
-
case WM_KILLFOCUS:
- return HandleKillFocus((WXHWND)wParam);
-
case WM_CUT:
case WM_COPY:
case WM_PASTE:
- return HandleClipboardEvent(msg);
+ // For the messages above the result is not used.
+ WXLRESULT result;
+ return MSWHandleMessage(&result, msg, wParam, lParam);
}
return false;