From 4389a9e7b9ab40a44c593297b005677fdd128f6d Mon Sep 17 00:00:00 2001 From: megacz Date: Fri, 30 Jan 2004 06:47:50 +0000 Subject: [PATCH] 2002/06/04 19:57:19 darcs-hash:20040130064750-2ba56-38a24eaa65205e6256e273fcd76d6926a0980fd2.gz --- CHANGES | 2 ++ src/org/xwt/plat/Win32.cc | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index c15cc96..84e4e40 100644 --- a/CHANGES +++ b/CHANGES @@ -180,3 +180,5 @@ 01-Jun megacz POSIX.cc, POSIX.java: finally completed POSIX support +01-Jun megacz Win32.cc: attempted fix for international keyboards + diff --git a/src/org/xwt/plat/Win32.cc b/src/org/xwt/plat/Win32.cc index d2f699b..ef8d70f 100644 --- a/src/org/xwt/plat/Win32.cc +++ b/src/org/xwt/plat/Win32.cc @@ -821,13 +821,13 @@ jint org::xwt::plat::Win32$Win32Surface::WndProc(jint _hwnd, jint _iMsg, jint _w static char keyarr [256] = { 0 }; static jstring keyToString(WPARAM wParam) { - char arr[4]; + char arr[8]; keyarr[VK_CAPITAL] = GetKeyState(VK_CAPITAL); keyarr[VK_LSHIFT] = GetKeyState(VK_LSHIFT); keyarr[VK_RSHIFT] = GetKeyState(VK_RSHIFT); keyarr[VK_SHIFT] = GetKeyState(VK_SHIFT); - - if (ToAscii(wParam, 0, (BYTE*)keyarr, (WORD*)arr, 0) == 1) { + + if (ToAsciiEx(wParam, 0, (BYTE*)keyarr, (WORD*)arr, 0, GetKeyboardLayout(0)) == 1) { switch (arr[0]) { case '\t': return JvNewStringLatin1("tab"); case 0x1b: return JvNewStringLatin1("escape"); -- 1.7.10.4