diff --git a/reactos/subsys/csrss/win32csr/conio.c b/reactos/subsys/csrss/win32csr/conio.c index 97ca9e5f4b4..0b536bfd479 100644 --- a/reactos/subsys/csrss/win32csr/conio.c +++ b/reactos/subsys/csrss/win32csr/conio.c @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * reactos/subsys/csrss/win32csr/conio.c * * Console I/O functions @@ -1127,7 +1126,7 @@ ConioProcessChar(PCSRSS_CONSOLE Console, if (0 == (Console->Mode & ENABLE_LINE_INPUT) || Console->EarlyReturn || ('\n' == KeyEventRecord->InputEvent.Event.KeyEvent.uChar.AsciiChar - && ! KeyEventRecord->InputEvent.Event.KeyEvent.bKeyDown)) + && KeyEventRecord->InputEvent.Event.KeyEvent.bKeyDown)) { if ('\n' == KeyEventRecord->InputEvent.Event.KeyEvent.uChar.AsciiChar) { diff --git a/reactos/subsys/win32k/ntuser/keyboard.c b/reactos/subsys/win32k/ntuser/keyboard.c index 9675e39744f..835a5b88697 100644 --- a/reactos/subsys/win32k/ntuser/keyboard.c +++ b/reactos/subsys/win32k/ntuser/keyboard.c @@ -16,8 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id$ - * +/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel * PURPOSE: Messages @@ -342,16 +341,23 @@ int STDCALL ToUnicodeEx( UINT wVirtKey, HKL dwhkl ) { int ToUnicodeResult = 0; - IntLockQueueState; - ToUnicodeResult = ToUnicodeInner( wVirtKey, - wScanCode, - lpKeyState, - pwszBuff, - cchBuff, - wFlags, - PsGetWin32Thread() ? - PsGetWin32Thread()->KeyboardLayout : 0 ); - IntUnLockQueueState; + if (0 == (lpKeyState[wVirtKey] & KS_DOWN_BIT)) + { + ToUnicodeResult = 0; + } + else + { + IntLockQueueState; + ToUnicodeResult = ToUnicodeInner( wVirtKey, + wScanCode, + lpKeyState, + pwszBuff, + cchBuff, + wFlags, + PsGetWin32Thread() ? + PsGetWin32Thread()->KeyboardLayout : 0 ); + IntUnLockQueueState; + } return ToUnicodeResult; }