wineconsole: Don't ignore extended keys.

This commit is contained in:
Dmitry Timoshkov 2008-10-27 19:14:05 +08:00 committed by Alexandre Julliard
parent de267347c5
commit b8b0b7fa41

View file

@ -1035,26 +1035,23 @@ static void WCUSER_GenerateKeyInputRecord(struct inner_data* data, BOOL down,
if (lParam & (1L << 24)) ir.Event.KeyEvent.dwControlKeyState |= ENHANCED_KEY; if (lParam & (1L << 24)) ir.Event.KeyEvent.dwControlKeyState |= ENHANCED_KEY;
if (sys) ir.Event.KeyEvent.dwControlKeyState |= LEFT_ALT_PRESSED; /* FIXME: gotta choose one */ if (sys) ir.Event.KeyEvent.dwControlKeyState |= LEFT_ALT_PRESSED; /* FIXME: gotta choose one */
if (!(ir.Event.KeyEvent.dwControlKeyState & ENHANCED_KEY)) if (down)
{ {
if (down) switch (ToUnicode(wParam, HIWORD(lParam), keyState, buf, 2, 0))
{ {
switch (ToUnicode(wParam, HIWORD(lParam), keyState, buf, 2, 0)) case 2:
{ /* FIXME... should generate two events... */
case 2: /* fall thru */
/* FIXME... should generate two events... */ case 1:
/* fall thru */ last = buf[0];
case 1: break;
last = buf[0]; default:
break; last = 0;
default: break;
last = 0; }
break;
}
}
ir.Event.KeyEvent.uChar.UnicodeChar = last; /* FIXME: HACKY... and buggy because it should be a stack, not a single value */
if (!down) last = 0;
} }
ir.Event.KeyEvent.uChar.UnicodeChar = last; /* FIXME: HACKY... and buggy because it should be a stack, not a single value */
if (!down) last = 0;
WriteConsoleInput(data->hConIn, &ir, 1, &n); WriteConsoleInput(data->hConIn, &ir, 1, &n);
} }