mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-25 01:02:24 +00:00
Fix from Thomas Henlich for bug in dead key support. I've reproduced the
problem and verified the fix on Win2K with the US-International keyboard layout. (Closes: `win-dead-keys') <20040323143836.GA40414@rcs.urz.tu-dresden.de> [originally from svn r3963]
This commit is contained in:
parent
c4bfa9b7b7
commit
aa07666cc1
10
window.c
10
window.c
@ -3170,7 +3170,8 @@ static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam,
|
|||||||
|
|
||||||
HKL kbd_layout = GetKeyboardLayout(0);
|
HKL kbd_layout = GetKeyboardLayout(0);
|
||||||
|
|
||||||
static WORD keys[3];
|
/* keys is for ToAsciiEx; XXX do we know how big this needs to be? */
|
||||||
|
static BYTE keys[3];
|
||||||
static int compose_char = 0;
|
static int compose_char = 0;
|
||||||
static WPARAM compose_key = 0;
|
static WPARAM compose_key = 0;
|
||||||
|
|
||||||
@ -3861,7 +3862,12 @@ static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam,
|
|||||||
keystate[VK_CAPITAL] = 0;
|
keystate[VK_CAPITAL] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = ToAsciiEx(wParam, scan, keystate, keys, 0, kbd_layout);
|
/* 'keys' parameter is declared in MSDN documentation as
|
||||||
|
* 'LPWORD lpChar'. In 0.54 and below we took that to mean that
|
||||||
|
* 'keys' should be an array of WORD, but an array of BYTE works
|
||||||
|
* better on keyboard with dead keys, at least for Win2K/US-
|
||||||
|
* International and WinXP/German. Bletch. */
|
||||||
|
r = ToAsciiEx(wParam, scan, keystate, (LPWORD)keys, 0, kbd_layout);
|
||||||
#ifdef SHOW_TOASCII_RESULT
|
#ifdef SHOW_TOASCII_RESULT
|
||||||
if (r == 1 && !key_down) {
|
if (r == 1 && !key_down) {
|
||||||
if (alt_sum) {
|
if (alt_sum) {
|
||||||
|
Loading…
Reference in New Issue
Block a user