[Resend] user32: Use the PostMessage() for WM_IME_KEY{DOWN|UP} message.
ByeongSik Jeon
bsjeon at hanmail.net
Mon Apr 21 22:33:12 CDT 2008
Dmitry Timoshkov wrote:
"ByeongSik Jeon" <bsjeon at hanmail.net> wrote:
> > * MS Spi++ test result, PostMessage is right.
> > * Message generation sequence:
> > WM_IME_KEYDOWN -> WM_KEYDOWN -> WM_CHAR
> > WM_CHAR is genetated in the TranslateMessage() when we use
> > PostMessage() function.
> > * Real case: MS IME 2002, MS IME 2003, Saenaru
> > In the preedit mode, when we press the "ENTER" key, Korean
> > Native IME generate the WM_IME_KEYDOWN(wParam==VK_RETURN) message.
> > This message is translated to the WM_CHAR(wParam==VK_RETURN)
> > message finally.
>
> You should add the tests to dlls/user32/tests/msg.c for the above
> changes.
SendMessage(WM_IME_CHAR, 'a', 1);
SendMessage(WM_IME_KEYDOWN, VK_RETURN, 0x1c0001);
If the defwndproc use the SendMessage for WM_IME_KEYDOWN, the expected
message sequences are:
{WM_IME_CHAR, 'a', 1},
{WM_IME_KEYDOWN, VK_RETURN, 0x1c0001},
{WM_KEYDOWN, VK_RETURN, 0x1c0001} <=== Note it.
{WM_CHAR, 'a', 1}
But, patched Wine and MS Windows are:
{WM_IME_CHAR, 'a', 1},
{WM_IME_KEYDOWN, VK_RETURN, 0x1c0001},
{WM_CHAR, 'a', 1} <== Note it.
{WM_KEYDOWN, VK_RETURN, 0x1c0001}
{WM_CHAR, VK_RETURN, 0x1c0001}
---
dlls/user32/defwnd.c | 12 +++++++-
dlls/user32/tests/msg.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+), 2 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20d35693b0b8e36f9f5db472b8dc880eed06080e.diff
Type: text/x-patch
Size: 3973 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20080422/71ba8ffb/attachment.bin
More information about the wine-patches
mailing list