The Tab key was considered a ctrl-key and Shift-Tab was ignored.

This commit is contained in:
Peter Berg Larsen 2003-10-09 04:26:29 +00:00 committed by Alexandre Julliard
parent 67d9f38059
commit 09f71d08ec
1 changed files with 19 additions and 5 deletions

View File

@ -464,11 +464,18 @@ static unsigned WCCURSES_FillSimpleChar(INPUT_RECORD* ir, unsigned real_inchar)
switch (real_inchar)
{
case 127: inchar = '\b'; break;
case 10: inchar = '\r'; real_inchar = 27; /* so that we don't think key is ctrl- something */ break;
case 9: inchar = real_inchar;
real_inchar = 27; /* so that we don't think key is ctrl- something */
break;
case 10: inchar = '\r';
real_inchar = 27; /* Fixme: so that we don't think key is ctrl- something */
break;
case 127: inchar = '\b';
break;
case 27:
/* we assume that ESC & and the second character are atomically generated
* otherwise, we'll have a race here
/* we assume that ESC & and the second character are atomically
* generated otherwise, we'll have a race here. FIXME: This gives 1 sec. delay
* because curses looks for a second character.
*/
if ((inchar = wgetch(stdscr)) != ERR)
{
@ -692,7 +699,14 @@ static unsigned WCCURSES_FillCode(struct inner_data* data, INPUT_RECORD* ir, int
case KEY_B2:
case KEY_C1:
case KEY_C3:
case KEY_BTAB:
goto notFound;
case KEY_BTAB: /* shift tab */
numEvent = WCCURSES_FillSimpleChar(ir, 0x9);
ir[0].Event.KeyEvent.dwControlKeyState |= SHIFT_PRESSED;
ir[1].Event.KeyEvent.dwControlKeyState |= SHIFT_PRESSED;
if (numEvent != 2) WINE_ERR("FillsimpleChar has changed");
break;
case KEY_BEG:
case KEY_CANCEL:
case KEY_CLOSE: