Module: wine Branch: master Commit: ef016c32c16af11e54c55d294849b6c9127eb3a0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ef016c32c16af11e54c55d2948...
Author: André Hentschel nerv@dawncrow.de Date: Mon Jun 1 20:10:21 2009 +0200
winex11: Fix Ctrl+Shift+Tab translation.
---
dlls/user32/tests/input.c | 2 ++ dlls/winex11.drv/keyboard.c | 2 +- 2 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c index 00d344b..d100610 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c @@ -1285,6 +1285,8 @@ static void test_ToUnicode(void)
state[VK_SHIFT] |= HIGHEST_BIT; state[VK_LSHIFT] |= HIGHEST_BIT; + ret = ToUnicode(VK_TAB, SC_TAB, state, wStr, 2, 0); + ok(ret == 0, "ToUnicode for CTRL + SHIFT + Tab didn't return 0 (was %i)\n", ret); ret = ToUnicode(VK_RETURN, SC_RETURN, state, wStr, 2, 0); todo_wine ok(ret == 0, "ToUnicode for CTRL + SHIFT + Return didn't return 0 (was %i)\n", ret); } diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c index ad41c84..05b3b53 100644 --- a/dlls/winex11.drv/keyboard.c +++ b/dlls/winex11.drv/keyboard.c @@ -2618,7 +2618,7 @@ INT CDECL X11DRV_ToUnicodeEx(UINT virtKey, UINT scanCode, const BYTE *lpKeyState #endif /* Special case: X turns shift-tab into ISO_Left_Tab. */ /* Here we change it back. */ - if (keysym == XK_ISO_Left_Tab) + if (keysym == XK_ISO_Left_Tab && !(e.state & ControlMask)) { bufW[0] = 0x09; ret = 1;