[curses] Handle tab keys (3/4)
Peter Berg Larsen
pebl at math.ku.dk
Tue Oct 7 23:12:22 CDT 2003
Changelog:
- the Tab key was considered a ctrl-key and Shift-Tab was ignored.
-------------- next part --------------
diff -b -u wine-20030911/programs/wineconsole/curses.c wine-my/programs/wineconsole/curses.c
--- wine-20030911/programs/wineconsole/curses.c 2003-09-07 07:08:14.000000000 +0200
+++ wine-my/programs/wineconsole/curses.c 2003-09-13 02:52:09.000000000 +0200
@@ -492,11 +492,18 @@
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)
{
@@ -720,7 +727,14 @@
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:
More information about the wine-patches
mailing list