André Hentschel : winex11: Fix Ctrl+Shift+Tab translation.

Alexandre Julliard julliard at winehq.org
Tue Jun 2 08:44:31 CDT 2009


Module: wine
Branch: master
Commit: ef016c32c16af11e54c55d294849b6c9127eb3a0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ef016c32c16af11e54c55d294849b6c9127eb3a0

Author: André Hentschel <nerv at 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;




More information about the wine-cvs mailing list