mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-30 04:48:36 +00:00
server: Apply modifier vkey transformations regardless of unicode flag.
This commit is contained in:
parent
d0e3286d96
commit
d14a827b8c
|
@ -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},
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue