server: Use KEYEVENTF_UNICODE mode only when virtual key code was not specified.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2019-07-01 14:09:30 +03:00 committed by Alexandre Julliard
parent 0b2fbab179
commit a476ae1991
2 changed files with 1 additions and 3 deletions

View File

@ -1105,10 +1105,8 @@ static void test_unicode_keys(HWND hwnd, HHOOK hook)
if (!key_status.sendinput_broken)
{
todo_wine {
ok(key_status.last_key_down == 0x51, "Unexpected key down %#x.\n", key_status.last_key_down);
ok(key_status.last_key_up == 0x51, "Unexpected key up %#x.\n", key_status.last_key_up);
}
if (hook)
todo_wine
ok(key_status.last_hook_up == 0x23, "Unexpected hook message %#x.\n", key_status.last_hook_up);

View File

@ -1803,7 +1803,7 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
msg->lparam = (input->kbd.scan << 16) | 1u; /* repeat count */
if (origin == IMO_INJECTED) msg_data->flags = LLKHF_INJECTED;
if (input->kbd.flags & KEYEVENTF_UNICODE)
if (input->kbd.flags & KEYEVENTF_UNICODE && !vkey)
{
msg->wparam = VK_PACKET;
}