The Tab key was considered a ctrl-key and Shift-Tab was ignored.
This commit is contained in:
parent
67d9f38059
commit
09f71d08ec
|
@ -464,11 +464,18 @@ static unsigned WCCURSES_FillSimpleChar(INPUT_RECORD* ir, unsigned real_inchar)
|
||||||
|
|
||||||
switch (real_inchar)
|
switch (real_inchar)
|
||||||
{
|
{
|
||||||
case 127: inchar = '\b'; break;
|
case 9: inchar = real_inchar;
|
||||||
case 10: inchar = '\r'; real_inchar = 27; /* so that we don't think key is ctrl- something */ break;
|
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:
|
case 27:
|
||||||
/* we assume that ESC & and the second character are atomically generated
|
/* we assume that ESC & and the second character are atomically
|
||||||
* otherwise, we'll have a race here
|
* 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)
|
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_B2:
|
||||||
case KEY_C1:
|
case KEY_C1:
|
||||||
case KEY_C3:
|
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_BEG:
|
||||||
case KEY_CANCEL:
|
case KEY_CANCEL:
|
||||||
case KEY_CLOSE:
|
case KEY_CLOSE:
|
||||||
|
|
Loading…
Reference in New Issue