Module: wine Branch: refs/heads/master Commit: 6c4082df74e2af15d2f542c91e73d7f55115f1fb URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=6c4082df74e2af15d2f542c9...
Author: Alexandre Julliard julliard@winehq.org Date: Thu May 18 12:27:27 2006 +0200
user: Added fast W->A mapping for WM_CHAR and related messages.
---
dlls/user/winproc.c | 31 ++++++++++++++++--------------- 1 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/dlls/user/winproc.c b/dlls/user/winproc.c index 4fbb4c0..b0bddaa 100644 --- a/dlls/user/winproc.c +++ b/dlls/user/winproc.c @@ -992,21 +992,6 @@ static INT WINPROC_MapMsg32WTo32A( HWND { switch(msg) { - case WM_CHARTOITEM: - case WM_MENUCHAR: - case WM_CHAR: - case WM_DEADCHAR: - case WM_SYSCHAR: - case WM_SYSDEADCHAR: - case EM_SETPASSWORDCHAR: - { - WCHAR wch = LOWORD(*pwparam); - BYTE ch; - WideCharToMultiByte( CP_ACP, 0, &wch, 1, (LPSTR)&ch, 1, NULL, NULL ); - *pwparam = MAKEWPARAM( ch, HIWORD(*pwparam) ); - } - return 0; - case WM_IME_CHAR: { WCHAR wch = LOWORD(*pwparam); @@ -3007,6 +2992,22 @@ static LRESULT WINPROC_CallProc32WTo32A( } break;
+ case WM_CHARTOITEM: + case WM_MENUCHAR: + case WM_CHAR: + case WM_DEADCHAR: + case WM_SYSCHAR: + case WM_SYSDEADCHAR: + case EM_SETPASSWORDCHAR: + { + WCHAR wch = LOWORD(wParam); + BYTE ch; + RtlUnicodeToMultiByteN( (LPSTR)&ch, 1, NULL, &wch, sizeof(WCHAR) ); + wParam = MAKEWPARAM( ch, HIWORD(wParam) ); + ret = WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam ); + } + break; + default: if ((unmap = WINPROC_MapMsg32WTo32A( hwnd, msg, &wParam, &lParam )) == -1) { ERR_(msg)("Message translation failed. (msg=%s,wp=%08x,lp=%08lx)\n",