From: Alexandros Frantzis alexandros.frantzis@collabora.com
--- dlls/user32/tests/input.c | 7 +++---- server/queue.c | 41 ++++++++++++++++++--------------------- 2 files changed, 22 insertions(+), 26 deletions(-)
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c index 560baa399da..0bcea006db1 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c @@ -1224,11 +1224,10 @@ static void test_SendInput_keyboard_messages( WORD vkey, WORD scan, WCHAR wch, W
struct send_input_keyboard_test unicode_vkey_ctrl[] = { - {.scan = 0x3c0, .vkey = VK_CONTROL, .flags = KEYEVENTF_UNICODE, - .expect_state = {[VK_CONTROL] = 0x80, [VK_LCONTROL] = 0x80}, .todo_state = {[VK_LCONTROL] = TRUE}, - .expect = {KEY_HOOK(WM_KEYDOWN, 0xc0, VK_LCONTROL, .todo_value = TRUE), KEY_MSG(WM_KEYDOWN, 0xc0, VK_CONTROL), {0}}}, + {.scan = 0x3c0, .vkey = VK_CONTROL, .flags = KEYEVENTF_UNICODE, .expect_state = {[VK_CONTROL] = 0x80, [VK_LCONTROL] = 0x80}, + .expect = {KEY_HOOK(WM_KEYDOWN, 0xc0, VK_LCONTROL), KEY_MSG(WM_KEYDOWN, 0xc0, VK_CONTROL), {0}}}, {.scan = 0x3c0, .vkey = VK_CONTROL, .flags = KEYEVENTF_UNICODE | KEYEVENTF_KEYUP, - .expect = {KEY_HOOK(WM_KEYUP, 0xc0, VK_LCONTROL, .todo_value = TRUE), KEY_MSG(WM_KEYUP, 0xc0, VK_CONTROL), {0}}}, + .expect = {KEY_HOOK(WM_KEYUP, 0xc0, VK_LCONTROL), KEY_MSG(WM_KEYUP, 0xc0, VK_CONTROL), {0}}}, {0}, };
diff --git a/server/queue.c b/server/queue.c index 3ffa48c3928..7d1cf780837 100644 --- a/server/queue.c +++ b/server/queue.c @@ -2103,29 +2103,26 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
if (!(time = input->kbd.time)) time = get_tick_count();
- if (!(input->kbd.flags & KEYEVENTF_UNICODE)) + switch (vkey) { - switch (vkey) - { - case VK_MENU: - case VK_LMENU: - case VK_RMENU: - vkey = (input->kbd.flags & KEYEVENTF_EXTENDEDKEY) ? VK_RMENU : VK_LMENU; - if ((input->kbd.vkey & 0xff) == VK_MENU) hook_vkey = vkey; - break; - case VK_CONTROL: - case VK_LCONTROL: - case VK_RCONTROL: - vkey = (input->kbd.flags & KEYEVENTF_EXTENDEDKEY) ? VK_RCONTROL : VK_LCONTROL; - if ((input->kbd.vkey & 0xff) == VK_CONTROL) hook_vkey = vkey; - break; - case VK_SHIFT: - case VK_LSHIFT: - case VK_RSHIFT: - vkey = (input->kbd.flags & KEYEVENTF_EXTENDEDKEY) ? VK_RSHIFT : VK_LSHIFT; - if ((input->kbd.vkey & 0xff) == VK_SHIFT) hook_vkey = vkey; - break; - } + case VK_MENU: + case VK_LMENU: + case VK_RMENU: + vkey = (input->kbd.flags & KEYEVENTF_EXTENDEDKEY) ? VK_RMENU : VK_LMENU; + if ((input->kbd.vkey & 0xff) == VK_MENU) hook_vkey = vkey; + break; + case VK_CONTROL: + case VK_LCONTROL: + case VK_RCONTROL: + vkey = (input->kbd.flags & KEYEVENTF_EXTENDEDKEY) ? VK_RCONTROL : VK_LCONTROL; + if ((input->kbd.vkey & 0xff) == VK_CONTROL) hook_vkey = vkey; + break; + case VK_SHIFT: + case VK_LSHIFT: + case VK_RSHIFT: + vkey = (input->kbd.flags & KEYEVENTF_EXTENDEDKEY) ? VK_RSHIFT : VK_LSHIFT; + if ((input->kbd.vkey & 0xff) == VK_SHIFT) hook_vkey = vkey; + break; }
message_code = (input->kbd.flags & KEYEVENTF_KEYUP) ? WM_KEYUP : WM_KEYDOWN;