- Add ctrl support to (most) keyboard layouts. Only tested for kbdus,
added
to a few other I was confident about. Still to do: kbddv, kbdgr,
kbdru, kbdsg
- Prevent access outside array in TryToTranslateChar
- Revert r17830, it handles ctrl keys at the wrong location
This fixes bug 763.
Modified: trunk/reactos/lib/keyboard/kbdbe/kbdbe.c
Modified: trunk/reactos/lib/keyboard/kbdda/kbdda.c
Modified: trunk/reactos/lib/keyboard/kbddv/kbddv.c
Modified: trunk/reactos/lib/keyboard/kbdes/kbdes.c
Modified: trunk/reactos/lib/keyboard/kbdfr/kbdfr.c
Modified: trunk/reactos/lib/keyboard/kbdse/kbdse.c
Modified: trunk/reactos/lib/keyboard/kbduk/kbduk.c
Modified: trunk/reactos/lib/keyboard/kbdus/kbdus.c
Modified: trunk/reactos/subsys/win32k/ntuser/input.c
Modified: trunk/reactos/subsys/win32k/ntuser/keyboard.c
_____
Modified: trunk/reactos/lib/keyboard/kbdbe/kbdbe.c
--- trunk/reactos/lib/keyboard/kbdbe/kbdbe.c 2005-09-19 20:01:29 UTC
(rev 17935)
+++ trunk/reactos/lib/keyboard/kbdbe/kbdbe.c 2005-09-19 21:11:41 UTC
(rev 17936)
@@ -180,37 +180,6 @@
{ '8', NOCAPS, {'!', '8'} },
{ VK_OEM_2, NOCAPS, {')', 0xB0} },
- /* First letter row */
- { 'A', CAPS, {'a', 'A'} },
- { 'Z', CAPS, {'z', 'Z'} },
- { 'R', CAPS, {'r', 'R'} },
- { 'T', CAPS, {'t', 'T'} },
- { 'Y', CAPS, {'y', 'Y'} },
- { 'U', CAPS, {'u', 'U'} },
- { 'I', CAPS, {'i', 'I'} },
- { 'O', CAPS, {'o', 'O'} },
- { 'P', CAPS, {'p', 'P'} },
-
- /* Second letter row */
- { 'Q', CAPS, {'q', 'Q'} },
- { 'S', CAPS, {'s', 'S'} },
- { 'D', CAPS, {'d', 'D'} },
- { 'F', CAPS, {'f', 'F'} },
- { 'G', CAPS, {'g', 'G'} },
- { 'H', CAPS, {'h', 'H'} },
- { 'J', CAPS, {'j', 'J'} },
- { 'K', CAPS, {'k', 'K'} },
- { 'L', CAPS, {'l', 'L'} },
- { 'M', CAPS, {'m', 'M'} },
-
- /* Third letter row */
- { 'W', CAPS, {'w', 'W'} },
- { 'X', CAPS, {'x', 'X'} },
- { 'C', CAPS, {'c', 'C'} },
- { 'V', CAPS, {'v', 'V'} },
- { 'B', CAPS, {'b', 'B'} },
- { 'N', CAPS, {'n', 'N'} },
-
/* Specials */
{ VK_OEM_COMMA, CAPS, {',', '?'} },
{ VK_OEM_PERIOD, CAPS, {';', '.'} },
@@ -228,6 +197,33 @@
ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[] = {
/* Normal, Shifted, Ctrl */
+
+ /* The alphabet */
+ { 'A', CAPS, {'a', 'A', 0x01} },
+ { 'B', CAPS, {'b', 'B', 0x02} },
+ { 'C', CAPS, {'c', 'C', 0x03} },
+ { 'D', CAPS, {'d', 'D', 0x04} },
+ { 'F', CAPS, {'f', 'F', 0x06} },
+ { 'G', CAPS, {'g', 'G', 0x07} },
+ { 'H', CAPS, {'h', 'H', 0x08} },
+ { 'I', CAPS, {'i', 'I', 0x09} },
+ { 'J', CAPS, {'j', 'J', 0x0a} },
+ { 'K', CAPS, {'k', 'K', 0x0b} },
+ { 'L', CAPS, {'l', 'L', 0x0c} },
+ { 'M', CAPS, {'m', 'M', 0x0d} },
+ { 'N', CAPS, {'n', 'N', 0x0e} },
+ { 'O', CAPS, {'o', 'O', 0x0f} },
+ { 'P', CAPS, {'p', 'P', 0x10} },
+ { 'Q', CAPS, {'q', 'Q', 0x11} },
+ { 'R', CAPS, {'r', 'R', 0x12} },
+ { 'S', CAPS, {'s', 'S', 0x13} },
+ { 'T', CAPS, {'t', 'T', 0x14} },
+ { 'U', CAPS, {'u', 'U', 0x15} },
+ { 'V', CAPS, {'v', 'V', 0x16} },
+ { 'W', CAPS, {'w', 'W', 0x17} },
+ { 'X', CAPS, {'x', 'X', 0x18} },
+ { 'Y', CAPS, {'y', 'Y', 0x19} },
+ { 'Z', CAPS, {'z', 'Z', 0x1a} },
/* Legacy (telnet-style) ascii escapes */
{ VK_OEM_MINUS, NOCAPS, {'-', '_', 0x1f} }, //0x1f unit
separator
{ VK_RETURN, NOCAPS, {'\r', '\r', '\n'} },
@@ -242,6 +238,7 @@
ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[] = {
/* Normal, Shifted, Ctrl, Ctrl-Alt */
+
/* Legacy Ascii generators */
{ '1', NOCAPS, {'&', '1', WCH_NONE, '|'
} },
{ '2', NOCAPS, {0xE9, '2', WCH_NONE, '@' } },
@@ -257,7 +254,7 @@
{ VK_OEM_7, NOCAPS, {0xF9, '%', WCH_NONE, WCH_DEAD} },
{ VK_EMPTY , NOCAPS, {0xb4, '`', '|', WCH_NONE} },
- { 'E', CAPS, {'e', 'E', WCH_NONE, 0x20ac}
},
+ { 'E', CAPS, {'e', 'E', 0x05, 0x20ac} },
{ VK_EMPTY , NOCAPS, {0xa8, '^', WCH_NONE, '~'} },
{ VK_OEM_102, NOCAPS, {'<', '>', 0x001c,
'\\'} },
_____
Modified: trunk/reactos/lib/keyboard/kbdda/kbdda.c
--- trunk/reactos/lib/keyboard/kbdda/kbdda.c 2005-09-19 20:01:29 UTC
(rev 17935)
+++ trunk/reactos/lib/keyboard/kbdda/kbdda.c 2005-09-19 21:11:41 UTC
(rev 17936)
@@ -173,35 +173,7 @@
{ '1', NOCAPS, {'1', '!'} },
/* Ctrl-2 generates NUL */
{ VK_OEM_PLUS, NOCAPS, {'+', '?'} },
- /* First letter row */
- { 'Q', CAPS, {'q', 'Q'} },
- { 'W', CAPS, {'w', 'W'} },
- { 'R', CAPS, {'r', 'R'} },
- { 'T', CAPS, {'t', 'T'} },
- { 'Y', CAPS, {'y', 'Y'} },
- { 'U', CAPS, {'u', 'U'} },
- { 'I', CAPS, {'i', 'I'} },
- { 'O', CAPS, {'o', 'O'} },
- { 'P', CAPS, {'p', 'P'} },
{ VK_OEM_6, CAPS, {0xe5, 0xc5} }, /* ? */
- /* Second letter row */
- { 'A', CAPS, {'a', 'A'} },
- { 'S', CAPS, {'s', 'S'} },
- { 'D', CAPS, {'d', 'D'} },
- { 'F', CAPS, {'f', 'F'} },
- { 'G', CAPS, {'g', 'G'} },
- { 'H', CAPS, {'h', 'H'} },
- { 'J', CAPS, {'j', 'J'} },
- { 'K', CAPS, {'k', 'K'} },
- { 'L', CAPS, {'l', 'L'} },
-
- /* Third letter row */
- { 'Z', CAPS, {'z', 'Z'} },
- { 'X', CAPS, {'x', 'X'} },
- { 'C', CAPS, {'c', 'C'} },
- { 'V', CAPS, {'v', 'V'} },
- { 'B', CAPS, {'b', 'B'} },
- { 'N', CAPS, {'n', 'N'} },
/* Specials */
{ VK_OEM_7, CAPS, {0xf8, 0xd8} }, /* Ï */
@@ -222,6 +194,34 @@
ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[] = {
/* Normal, Shifted, Ctrl */
+
+ /* The alphabet */
+ { 'A', CAPS, {'a', 'A', 0x01} },
+ { 'B', CAPS, {'b', 'B', 0x02} },
+ { 'C', CAPS, {'c', 'C', 0x03} },
+ { 'D', CAPS, {'d', 'D', 0x04} },
+ { 'F', CAPS, {'f', 'F', 0x06} },
+ { 'G', CAPS, {'g', 'G', 0x07} },
+ { 'H', CAPS, {'h', 'H', 0x08} },
+ { 'I', CAPS, {'i', 'I', 0x09} },
+ { 'J', CAPS, {'j', 'J', 0x0a} },
+ { 'K', CAPS, {'k', 'K', 0x0b} },
+ { 'L', CAPS, {'l', 'L', 0x0c} },
+ { 'M', CAPS, {'m', 'M', 0x0d} },
+ { 'N', CAPS, {'n', 'N', 0x0e} },
+ { 'O', CAPS, {'o', 'O', 0x0f} },
+ { 'P', CAPS, {'p', 'P', 0x10} },
+ { 'Q', CAPS, {'q', 'Q', 0x11} },
+ { 'R', CAPS, {'r', 'R', 0x12} },
+ { 'S', CAPS, {'s', 'S', 0x13} },
+ { 'T', CAPS, {'t', 'T', 0x14} },
+ { 'U', CAPS, {'u', 'U', 0x15} },
+ { 'V', CAPS, {'v', 'V', 0x16} },
+ { 'W', CAPS, {'w', 'W', 0x17} },
+ { 'X', CAPS, {'x', 'X', 0x18} },
+ { 'Y', CAPS, {'y', 'Y', 0x19} },
+ { 'Z', CAPS, {'z', 'Z', 0x1a} },
+
/* Legacy (telnet-style) ascii escapes */
{ VK_OEM_MINUS, NOCAPS, {'-', '_', 0x1f /* US */} },
{ VK_RETURN, NOCAPS, {'\r', '\r', '\n'} },
@@ -248,11 +248,11 @@
{ VK_OEM_4, NOCAPS, {WCH_DEAD, WCH_DEAD, WCH_DEAD, '|'} },
{ VK_EMPTY , NOCAPS, {0xb4, '`', '|', WCH_NONE} },
- { 'E', CAPS, {'e', 'E', WCH_NONE, 0x20ac}
},
+ { 'E', CAPS, {'e', 'E', 0x05, 0x20ac} },
{ VK_OEM_1, NOCAPS, {WCH_DEAD, WCH_DEAD, WCH_NONE, WCH_DEAD} },
{ VK_EMPTY , NOCAPS, {0xa8, '^', WCH_NONE, '~'} },
- { 'M', CAPS, {'m', 'M', WCH_NONE, 0x00b5}
},
+ { 'M', CAPS, {'m', 'M', 0x0d, 0x00b5} },
{ VK_OEM_102, NOCAPS, {'<', '>', 0x001c,
'\\'} },
{ 0, 0 }
};
_____
Modified: trunk/reactos/lib/keyboard/kbddv/kbddv.c
--- trunk/reactos/lib/keyboard/kbddv/kbddv.c 2005-09-19 20:01:29 UTC
(rev 17935)
+++ trunk/reactos/lib/keyboard/kbddv/kbddv.c 2005-09-19 21:11:41 UTC
(rev 17936)
@@ -143,35 +143,6 @@
{ '8', NOCAPS, {'8', '*'} },
{ '9', NOCAPS, {'9', '('} },
{ '0', NOCAPS, {'0', ')'} },
- /* First letter row */
- { 'P', CAPS, {'p', 'P'} },
- { 'Y', CAPS, {'y', 'Y'} },
- { 'F', CAPS, {'f', 'F'} },
- { 'G', CAPS, {'g', 'G'} },
- { 'C', CAPS, {'c', 'C'} },
- { 'R', CAPS, {'r', 'R'} },
- { 'L', CAPS, {'l', 'L'} },
- /* Second letter row */
- { 'A', CAPS, {'a', 'A'} },
- { 'O', CAPS, {'o', 'O'} },
- { 'E', CAPS, {'e', 'E'} },
- { 'U', CAPS, {'u', 'U'} },
- { 'I', CAPS, {'i', 'I'} },
- { 'D', CAPS, {'d', 'D'} },
- { 'H', CAPS, {'h', 'H'} },
- { 'T', CAPS, {'t', 'T'} },
- { 'N', CAPS, {'n', 'N'} },
- { 'S', CAPS, {'s', 'S'} },
- /* Third letter row */
- { 'Q', CAPS, {'q', 'Q'} },
- { 'J', CAPS, {'j', 'J'} },
- { 'K', CAPS, {'k', 'K'} },
- { 'X', CAPS, {'x', 'X'} },
- { 'B', CAPS, {'b', 'B'} },
- { 'M', CAPS, {'m', 'M'} },
- { 'W', CAPS, {'w', 'W'} },
- { 'V', CAPS, {'v', 'V'} },
- { 'Z', CAPS, {'z', 'Z'} },
/* Specials */
/* Ctrl-_ generates US */
@@ -205,6 +176,35 @@
ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[] = {
/* Normal, Shifted, Ctrl, C-S-x */
+
+ /* The alphabet */
+ { 'A', CAPS, {'a', 'A', 0x01, 0x01} },
+ { 'B', CAPS, {'b', 'B', 0x02, 0x02} },
+ { 'C', CAPS, {'c', 'C', 0x03, 0x03} },
+ { 'D', CAPS, {'d', 'D', 0x04, 0x04} },
+ { 'E', CAPS, {'e', 'E', 0x05, 0x05} },
+ { 'F', CAPS, {'f', 'F', 0x06, 0x06} },
+ { 'G', CAPS, {'g', 'G', 0x07, 0x07} },
+ { 'H', CAPS, {'h', 'H', 0x08, 0x08} },
+ { 'I', CAPS, {'i', 'I', 0x09, 0x09} },
+ { 'J', CAPS, {'j', 'J', 0x0a, 0x0a} },
+ { 'K', CAPS, {'k', 'K', 0x0b, 0x0b} },
+ { 'L', CAPS, {'l', 'L', 0x0c, 0x0c} },
+ { 'M', CAPS, {'m', 'M', 0x0d, 0x0d} },
+ { 'N', CAPS, {'n', 'N', 0x0e, 0x0e} },
+ { 'O', CAPS, {'o', 'O', 0x0f, 0x0f} },
+ { 'P', CAPS, {'p', 'P', 0x10, 0x10} },
+ { 'Q', CAPS, {'q', 'Q', 0x11, 0x11} },
+ { 'R', CAPS, {'r', 'R', 0x12, 0x12} },
+ { 'S', CAPS, {'s', 'S', 0x13, 0x13} },
+ { 'T', CAPS, {'t', 'T', 0x14, 0x14} },
+ { 'U', CAPS, {'u', 'U', 0x15, 0x15} },
+ { 'V', CAPS, {'v', 'V', 0x16, 0x16} },
+ { 'W', CAPS, {'w', 'W', 0x17, 0x17} },
+ { 'X', CAPS, {'x', 'X', 0x18, 0x18} },
+ { 'Y', CAPS, {'y', 'Y', 0x19, 0x19} },
+ { 'Z', CAPS, {'z', 'Z', 0x1a, 0x1a} },
+
/* Legacy Ascii generators */
{ '2', NOCAPS, {'2', '@', WCH_NONE, 0} },
{ '6', NOCAPS, {'6', '^', WCH_NONE, 0x1e /* RS */} },
_____
Modified: trunk/reactos/lib/keyboard/kbdes/kbdes.c
--- trunk/reactos/lib/keyboard/kbdes/kbdes.c 2005-09-19 20:01:29 UTC
(rev 17935)
+++ trunk/reactos/lib/keyboard/kbdes/kbdes.c 2005-09-19 21:11:41 UTC
(rev 17936)
@@ -249,36 +249,7 @@
{ '8', NOCAPS, {'8', '('} },
{ '9', NOCAPS, {'9', ')'} },
{ '0', NOCAPS, {'0', '='} },
- /* First letter row */
- { 'Q', CAPS, {'q', 'Q'} },
- { 'W', CAPS, {'w', 'W'} },
- //La E tiene 3 estados
- { 'R', CAPS, {'r', 'R'} },
- { 'T', CAPS, {'t', 'T'} },
- { 'Y', CAPS, {'y', 'Y'} },
- { 'U', CAPS, {'u', 'U'} },
- { 'I', CAPS, {'i', 'I'} },
- { 'O', CAPS, {'o', 'O'} },
- { 'P', CAPS, {'p', 'P'} },
- /* Second letter row */
- { 'A', CAPS, {'a', 'A'} },
- { 'S', CAPS, {'s', 'S'} },
- { 'D', CAPS, {'d', 'D'} },
- { 'F', CAPS, {'f', 'F'} },
- { 'G', CAPS, {'g', 'G'} },
- { 'H', CAPS, {'h', 'H'} },
- { 'J', CAPS, {'j', 'J'} },
- { 'K', CAPS, {'k', 'K'} },
- { 'L', CAPS, {'l', 'L'} },
{ VK_OEM_3, CAPS, {0x00F1, 0x00D1} }, // ±Ð
- /* Third letter row */
- { 'Z', CAPS, {'z', 'Z'} },
- { 'X', CAPS, {'x', 'X'} },
- { 'C', CAPS, {'c', 'C'} },
- { 'V', CAPS, {'v', 'V'} },
- { 'B', CAPS, {'b', 'B'} },
- { 'N', CAPS, {'n', 'N'} },
- { 'M', CAPS, {'m', 'M'} },
/* Specials */
/* Ctrl-_ generates ES */
@@ -303,6 +274,34 @@
ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[] = {
/* Normal, Shifted, Ctrl */
+
+ /* The alphabet */
+ { 'A', CAPS, {'a', 'A', 0x01} },
+ { 'B', CAPS, {'b', 'B', 0x02} },
+ { 'C', CAPS, {'c', 'C', 0x03} },
+ { 'D', CAPS, {'d', 'D', 0x04} },
+ { 'F', CAPS, {'f', 'F', 0x06} },
+ { 'G', CAPS, {'g', 'G', 0x07} },
+ { 'H', CAPS, {'h', 'H', 0x08} },
+ { 'I', CAPS, {'i', 'I', 0x09} },
+ { 'J', CAPS, {'j', 'J', 0x0a} },
+ { 'K', CAPS, {'k', 'K', 0x0b} },
+ { 'L', CAPS, {'l', 'L', 0x0c} },
+ { 'M', CAPS, {'m', 'M', 0x0d} },
+ { 'N', CAPS, {'n', 'N', 0x0e} },
+ { 'O', CAPS, {'o', 'O', 0x0f} },
+ { 'P', CAPS, {'p', 'P', 0x10} },
+ { 'Q', CAPS, {'q', 'Q', 0x11} },
+ { 'R', CAPS, {'r', 'R', 0x12} },
+ { 'S', CAPS, {'s', 'S', 0x13} },
+ { 'T', CAPS, {'t', 'T', 0x14} },
+ { 'U', CAPS, {'u', 'U', 0x15} },
+ { 'V', CAPS, {'v', 'V', 0x16} },
+ { 'W', CAPS, {'w', 'W', 0x17} },
+ { 'X', CAPS, {'x', 'X', 0x18} },
+ { 'Y', CAPS, {'y', 'Y', 0x19} },
+ { 'Z', CAPS, {'z', 'Z', 0x1a} },
+
/* Legacy (telnet-style) ascii escapes */
{ VK_RETURN, NOCAPS, {'\r', '\r', '\n'} },
{ 0,0 }
@@ -315,7 +314,7 @@
{ '2', NOCAPS, {'2', '"', WCH_NONE, '@'}
},
// 2"@
{ '3', NOCAPS, {'3', 0x00B7, WCH_NONE, '#'} },
// 3À#
{ '6', NOCAPS, {'6', '&', WCH_NONE, 0x00AC} },
// 6&¼
- { 'E', CAPS, {'e', 'E', WCH_NONE, 0x20AC} },
// eEÇ
+ { 'E', CAPS, {'e', 'E', 0x05, 0x20AC} }, //
eEÇ
{ VK_OEM_PLUS, NOCAPS, {'+', '*', WCH_NONE, 0x005d}
}, // +*]
{ VK_OEM_2, NOCAPS, {0x00e7, 0x00c7, WCH_NONE, '}'}
}, // þÃ}
_____
Modified: trunk/reactos/lib/keyboard/kbdfr/kbdfr.c
--- trunk/reactos/lib/keyboard/kbdfr/kbdfr.c 2005-09-19 20:01:29 UTC
(rev 17935)
+++ trunk/reactos/lib/keyboard/kbdfr/kbdfr.c 2005-09-19 21:11:41 UTC
(rev 17936)
@@ -162,35 +162,6 @@
//{ '8', NOCAPS, {'_', '8'} },
//{ '9', NOCAPS, {'þ', '9'} },
//{ '0', NOCAPS, {'Ó', '0'} },
- /* First letter row */
- { 'A', CAPS, {'a', 'A'} },
- { 'Z', CAPS, {'z', 'Z'} },
- //{ 'E', CAPS, {'e', 'E'} },
- { 'R', CAPS, {'r', 'R'} },
- { 'T', CAPS, {'t', 'T'} },
- { 'Y', CAPS, {'y', 'Y'} },
- { 'U', CAPS, {'u', 'U'} },
- { 'I', CAPS, {'i', 'I'} },
- { 'O', CAPS, {'o', 'O'} },
- { 'P', CAPS, {'p', 'P'} },
- /* Second letter row */
- { 'Q', CAPS, {'q', 'Q'} },
- { 'S', CAPS, {'s', 'S'} },
- { 'D', CAPS, {'d', 'D'} },
- { 'F', CAPS, {'f', 'F'} },
- { 'G', CAPS, {'g', 'G'} },
- { 'H', CAPS, {'h', 'H'} },
- { 'J', CAPS, {'j', 'J'} },
- { 'K', CAPS, {'k', 'K'} },
- { 'L', CAPS, {'l', 'L'} },
- { 'M', CAPS, {'m', 'M'} },
- /* Third letter row */
- { 'W', CAPS, {'w', 'W'} },
- { 'X', CAPS, {'x', 'X'} },
- { 'C', CAPS, {'c', 'C'} },
- { 'V', CAPS, {'v', 'V'} },
- { 'B', CAPS, {'b', 'B'} },
- { 'N', CAPS, {'n', 'N'} },
/* Specials */
/* Ctrl-_ generates US */
@@ -214,6 +185,34 @@
ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[] = {
/* Normal, Shifted, Ctrl */
+
+ /* The alphabet */
+ { 'A', CAPS, {'a', 'A', 0x01} },
+ { 'B', CAPS, {'b', 'B', 0x02} },
+ { 'C', CAPS, {'c', 'C', 0x03} },
+ { 'D', CAPS, {'d', 'D', 0x04} },
+ { 'F', CAPS, {'f', 'F', 0x06} },
+ { 'G', CAPS, {'g', 'G', 0x07} },
+ { 'H', CAPS, {'h', 'H', 0x08} },
+ { 'I', CAPS, {'i', 'I', 0x09} },
+ { 'J', CAPS, {'j', 'J', 0x0a} },
+ { 'K', CAPS, {'k', 'K', 0x0b} },
+ { 'L', CAPS, {'l', 'L', 0x0c} },
+ { 'M', CAPS, {'m', 'M', 0x0d} },
+ { 'N', CAPS, {'n', 'N', 0x0e} },
+ { 'O', CAPS, {'o', 'O', 0x0f} },
+ { 'P', CAPS, {'p', 'P', 0x10} },
+ { 'Q', CAPS, {'q', 'Q', 0x11} },
+ { 'R', CAPS, {'r', 'R', 0x12} },
+ { 'S', CAPS, {'s', 'S', 0x13} },
+ { 'T', CAPS, {'t', 'T', 0x14} },
+ { 'U', CAPS, {'u', 'U', 0x15} },
+ { 'V', CAPS, {'v', 'V', 0x16} },
+ { 'W', CAPS, {'w', 'W', 0x17} },
+ { 'X', CAPS, {'x', 'X', 0x18} },
+ { 'Y', CAPS, {'y', 'Y', 0x19} },
+ { 'Z', CAPS, {'z', 'Z', 0x1a} },
+
/* Legacy (telnet-style) ascii escapes */
{ VK_OEM_102, 0, {'<', '>', 0x1c /* FS */} },
{ VK_OEM_6, 0, {WCH_DEAD, WCH_DEAD, WCH_NONE} },
@@ -234,7 +233,7 @@
{ '9' , 1, {'þ', '9', WCH_NONE, '^'} },
{ '0' , 1, {'Ó', '0', WCH_NONE, '@'} },
{ VK_OEM_PLUS,0, {'=', '+', WCH_NONE, '}'} },
- { 'E' , 1, {'e', 'E', WCH_NONE, 'Ç' /*
euro */} },
+ { 'E' , 1, {'e', 'E', 0x05, 'Ç' /*
euro */} },
{ VK_OEM_1, 0, {'$', 'ú', WCH_NONE, 'ñ'} },
{ VK_OEM_4, 0, {')', '?', WCH_NONE, ']'} },
{ 0, 0 }
_____
Modified: trunk/reactos/lib/keyboard/kbdse/kbdse.c
--- trunk/reactos/lib/keyboard/kbdse/kbdse.c 2005-09-19 20:01:29 UTC
(rev 17935)
+++ trunk/reactos/lib/keyboard/kbdse/kbdse.c 2005-09-19 21:11:41 UTC
(rev 17936)
@@ -176,35 +176,6 @@
/* The numbers */
{ '1', NOCAPS, {'1', '!'} },
/* Ctrl-2 generates NUL */
-
- /* First letter row */
- { 'Q', CAPS, {'q', 'Q'} },
- { 'W', CAPS, {'w', 'W'} },
- { 'R', CAPS, {'r', 'R'} },
- { 'T', CAPS, {'t', 'T'} },
- { 'Y', CAPS, {'y', 'Y'} },
- { 'U', CAPS, {'u', 'U'} },
- { 'I', CAPS, {'i', 'I'} },
- { 'O', CAPS, {'o', 'O'} },
- { 'P', CAPS, {'p', 'P'} },
- /* Second letter row */
- { 'A', CAPS, {'a', 'A'} },
- { 'S', CAPS, {'s', 'S'} },
- { 'D', CAPS, {'d', 'D'} },
- { 'F', CAPS, {'f', 'F'} },
- { 'G', CAPS, {'g', 'G'} },
- { 'H', CAPS, {'h', 'H'} },
- { 'J', CAPS, {'j', 'J'} },
- { 'K', CAPS, {'k', 'K'} },
- { 'L', CAPS, {'l', 'L'} },
-
- /* Third letter row */
- { 'Z', CAPS, {'z', 'Z'} },
- { 'X', CAPS, {'x', 'X'} },
- { 'C', CAPS, {'c', 'C'} },
- { 'V', CAPS, {'v', 'V'} },
- { 'B', CAPS, {'b', 'B'} },
- { 'N', CAPS, {'n', 'N'} },
/* Specials */
{ VK_OEM_4, NOCAPS, {WCH_DEAD, WCH_DEAD} },
@@ -226,6 +197,33 @@
ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[] = {
/* Normal, Shifted, Ctrl */
+
+ /* The alphabet */
+ { 'A', CAPS, {'a', 'A', 0x01} },
+ { 'B', CAPS, {'b', 'B', 0x02} },
+ { 'C', CAPS, {'c', 'C', 0x03} },
+ { 'D', CAPS, {'d', 'D', 0x04} },
+ { 'F', CAPS, {'f', 'F', 0x06} },
+ { 'G', CAPS, {'g', 'G', 0x07} },
+ { 'H', CAPS, {'h', 'H', 0x08} },
+ { 'I', CAPS, {'i', 'I', 0x09} },
+ { 'J', CAPS, {'j', 'J', 0x0a} },
+ { 'K', CAPS, {'k', 'K', 0x0b} },
+ { 'L', CAPS, {'l', 'L', 0x0c} },
+ { 'N', CAPS, {'n', 'N', 0x0e} },
+ { 'O', CAPS, {'o', 'O', 0x0f} },
+ { 'P', CAPS, {'p', 'P', 0x10} },
+ { 'Q', CAPS, {'q', 'Q', 0x11} },
+ { 'R', CAPS, {'r', 'R', 0x12} },
+ { 'S', CAPS, {'s', 'S', 0x13} },
+ { 'T', CAPS, {'t', 'T', 0x14} },
+ { 'U', CAPS, {'u', 'U', 0x15} },
+ { 'V', CAPS, {'v', 'V', 0x16} },
+ { 'W', CAPS, {'w', 'W', 0x17} },
+ { 'X', CAPS, {'x', 'X', 0x18} },
+ { 'Y', CAPS, {'y', 'Y', 0x19} },
+ { 'Z', CAPS, {'z', 'Z', 0x1a} },
+
/* Legacy (telnet-style) ascii escapes */
{VK_OEM_6, CAPS, {0xe5,0xc5, 0x1d /* GS */} },
{ VK_OEM_5, NOCAPS, {0xa7,0xbd, 0x1c /* FS */} },
@@ -253,9 +251,9 @@
{ '9', NOCAPS, {'9', ')', WCH_NONE, ']'} },
{ '0', NOCAPS, {'0', '=', WCH_NONE, '}'} },
{ VK_OEM_PLUS ,NOCAPS, {'+', '?', WCH_NONE, '\\'} },
- { 'E', CAPS, {'e', 'E' , WCH_NONE, 0x00ac} },
+ { 'E', CAPS, {'e', 'E' , 0x05, 0x00ac} },
{ VK_OEM_1 ,NOCAPS, {0xa8, '^', 0x001d, '~'} },
- { 'M', CAPS, {'m', 'M', WCH_NONE, 0x00b5} },
+ { 'M', CAPS, {'m', 'M', 0x0d, 0x00b5} },
{VK_OEM_102, NOCAPS, {'<', '>' ,0x001c,'|'} },
{ 0, 0 }
};
_____
Modified: trunk/reactos/lib/keyboard/kbduk/kbduk.c
--- trunk/reactos/lib/keyboard/kbduk/kbduk.c 2005-09-19 20:01:29 UTC
(rev 17935)
+++ trunk/reactos/lib/keyboard/kbduk/kbduk.c 2005-09-19 21:11:41 UTC
(rev 17936)
@@ -146,32 +146,7 @@
{ '9', NOCAPS, {'9', '('} },
{ '0', NOCAPS, {'0', ')'} },
{ VK_OEM_PLUS ,NOCAPS, {'=', '+'} },
- /* First letter row */
- { 'Q', CAPS, {'q', 'Q'} },
- { 'W', CAPS, {'w', 'W'} },
- { 'R', CAPS, {'r', 'R'} },
- { 'T', CAPS, {'t', 'T'} },
- { 'Y', CAPS, {'y', 'Y'} },
- { 'P', CAPS, {'p', 'P'} },
- /* Second letter row */
- { 'S', CAPS, {'s', 'S'} },
- { 'D', CAPS, {'d', 'D'} },
- { 'F', CAPS, {'f', 'F'} },
- { 'G', CAPS, {'g', 'G'} },
- { 'H', CAPS, {'h', 'H'} },
- { 'J', CAPS, {'j', 'J'} },
- { 'K', CAPS, {'k', 'K'} },
- { 'L', CAPS, {'l', 'L'} },
{ VK_OEM_1 ,NOCAPS, {';', ':'} },
-
- /* Third letter row */
- { 'Z', CAPS, {'z', 'Z'} },
- { 'X', CAPS, {'x', 'X'} },
- { 'C', CAPS, {'c', 'C'} },
- { 'V', CAPS, {'v', 'V'} },
- { 'B', CAPS, {'b', 'B'} },
- { 'N', CAPS, {'n', 'N'} },
- { 'M', CAPS, {'m', 'M'} },
{ VK_OEM_COMMA, NOCAPS, {',', '<'} },
{ VK_OEM_PERIOD, NOCAPS, {'.', '>'} },
{ VK_OEM_2, NOCAPS, {'/', '?'} },
@@ -201,6 +176,30 @@
ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[] = {
/* Normal, Shifted, Ctrl, C-Shift */
+
+ /* The alphabet */
+ { 'B', CAPS, {'b', 'B', 0x02, 0x02} },
+ { 'C', CAPS, {'c', 'C', 0x03, 0x03} },
+ { 'D', CAPS, {'d', 'D', 0x04, 0x04} },
+ { 'F', CAPS, {'f', 'F', 0x06, 0x06} },
+ { 'G', CAPS, {'g', 'G', 0x07, 0x07} },
+ { 'H', CAPS, {'h', 'H', 0x08, 0x08} },
+ { 'J', CAPS, {'j', 'J', 0x0a, 0x0a} },
+ { 'K', CAPS, {'k', 'K', 0x0b, 0x0b} },
+ { 'L', CAPS, {'l', 'L', 0x0c, 0x0c} },
+ { 'M', CAPS, {'m', 'M', 0x0d, 0x0d} },
+ { 'N', CAPS, {'n', 'N', 0x0e, 0x0e} },
+ { 'P', CAPS, {'p', 'P', 0x10, 0x10} },
+ { 'Q', CAPS, {'q', 'Q', 0x11, 0x11} },
+ { 'R', CAPS, {'r', 'R', 0x12, 0x12} },
+ { 'S', CAPS, {'s', 'S', 0x13, 0x13} },
+ { 'T', CAPS, {'t', 'T', 0x14, 0x14} },
+ { 'V', CAPS, {'v', 'V', 0x16, 0x16} },
+ { 'W', CAPS, {'w', 'W', 0x17, 0x17} },
+ { 'X', CAPS, {'x', 'X', 0x18, 0x18} },
+ { 'Y', CAPS, {'y', 'Y', 0x19, 0x19} },
+ { 'Z', CAPS, {'z', 'Z', 0x1a, 0x1a} },
+
/* Legacy Ascii generators */
{ '6', NOCAPS, {'6', '^', WCH_NONE, 0x1e} },
@@ -220,11 +219,11 @@
ROSDATA VK_TO_WCHARS6 key_to_chars_6mod[] = {
/* Normal, Shifted, Ctrl, Sh-Ctrl,Sh-Alt,Ctl-Alt,Ctl-Sh-Alt */
- { 'E', CAPS, {'e', 'E', WCH_NONE, WCH_NONE, 0x00e9,
0x00c9}
},
- { 'U', CAPS, {'u', 'U', WCH_NONE, WCH_NONE, 0x00fa,
0x00da}
},
- { 'I', CAPS, {'i', 'I', WCH_NONE, WCH_NONE, 0x00ed,
0x00cd}
},
- { 'O', CAPS, {'o', 'O', WCH_NONE, WCH_NONE, 0x00f3,
0x00d3}
},
- { 'A', CAPS, {'a', 'A', WCH_NONE, WCH_NONE, 0x00e1,
0x00c1}
},
+ { 'E', CAPS, {'e', 'E', 0x05, 0x05, 0x00e9, 0x00c9}
},
+ { 'U', CAPS, {'u', 'U', 0x15, 0x15, 0x00fa, 0x00da}
},
+ { 'I', CAPS, {'i', 'I', 0x09, 0x09, 0x00ed, 0x00cd}
},
+ { 'O', CAPS, {'o', 'O', 0x0f, 0x0f, 0x00f3, 0x00d3}
},
+ { 'A', CAPS, {'a', 'A', 0x01, 0x01, 0x00e1, 0x00c1}
},
{ 0, 0 }
};
_____
Modified: trunk/reactos/lib/keyboard/kbdus/kbdus.c
--- trunk/reactos/lib/keyboard/kbdus/kbdus.c 2005-09-19 20:01:29 UTC
(rev 17935)
+++ trunk/reactos/lib/keyboard/kbdus/kbdus.c 2005-09-19 21:11:41 UTC
(rev 17936)
@@ -143,35 +143,6 @@
{ '8', NOCAPS, {'8', '*'} },
{ '9', NOCAPS, {'9', '('} },
{ '0', NOCAPS, {'0', ')'} },
- /* First letter row */
- { 'Q', CAPS, {'q', 'Q'} },
- { 'W', CAPS, {'w', 'W'} },
- { 'E', CAPS, {'e', 'E'} },
- { 'R', CAPS, {'r', 'R'} },
- { 'T', CAPS, {'t', 'T'} },
- { 'Y', CAPS, {'y', 'Y'} },
- { 'U', CAPS, {'u', 'U'} },
- { 'I', CAPS, {'i', 'I'} },
- { 'O', CAPS, {'o', 'O'} },
- { 'P', CAPS, {'p', 'P'} },
- /* Second letter row */
- { 'A', CAPS, {'a', 'A'} },
- { 'S', CAPS, {'s', 'S'} },
- { 'D', CAPS, {'d', 'D'} },
- { 'F', CAPS, {'f', 'F'} },
- { 'G', CAPS, {'g', 'G'} },
- { 'H', CAPS, {'h', 'H'} },
- { 'J', CAPS, {'j', 'J'} },
- { 'K', CAPS, {'k', 'K'} },
- { 'L', CAPS, {'l', 'L'} },
- /* Third letter row */
- { 'Z', CAPS, {'z', 'Z'} },
- { 'X', CAPS, {'x', 'X'} },
- { 'C', CAPS, {'c', 'C'} },
- { 'V', CAPS, {'v', 'V'} },
- { 'B', CAPS, {'b', 'B'} },
- { 'N', CAPS, {'n', 'N'} },
- { 'M', CAPS, {'m', 'M'} },
/* Specials */
/* Ctrl-_ generates US */
@@ -205,6 +176,35 @@
ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[] = {
/* Normal, Shifted, Ctrl, C-S-x */
+
+ /* The alphabet */
+ { 'A', CAPS, {'a', 'A', 0x01, 0x01} },
+ { 'B', CAPS, {'b', 'B', 0x02, 0x02} },
+ { 'C', CAPS, {'c', 'C', 0x03, 0x03} },
+ { 'D', CAPS, {'d', 'D', 0x04, 0x04} },
+ { 'E', CAPS, {'e', 'E', 0x05, 0x05} },
+ { 'F', CAPS, {'f', 'F', 0x06, 0x06} },
+ { 'G', CAPS, {'g', 'G', 0x07, 0x07} },
+ { 'H', CAPS, {'h', 'H', 0x08, 0x08} },
+ { 'I', CAPS, {'i', 'I', 0x09, 0x09} },
+ { 'J', CAPS, {'j', 'J', 0x0a, 0x0a} },
+ { 'K', CAPS, {'k', 'K', 0x0b, 0x0b} },
+ { 'L', CAPS, {'l', 'L', 0x0c, 0x0c} },
+ { 'M', CAPS, {'m', 'M', 0x0d, 0x0d} },
+ { 'N', CAPS, {'n', 'N', 0x0e, 0x0e} },
+ { 'O', CAPS, {'o', 'O', 0x0f, 0x0f} },
+ { 'P', CAPS, {'p', 'P', 0x10, 0x10} },
+ { 'Q', CAPS, {'q', 'Q', 0x11, 0x11} },
+ { 'R', CAPS, {'r', 'R', 0x12, 0x12} },
+ { 'S', CAPS, {'s', 'S', 0x13, 0x13} },
+ { 'T', CAPS, {'t', 'T', 0x14, 0x14} },
+ { 'U', CAPS, {'u', 'U', 0x15, 0x15} },
+ { 'V', CAPS, {'v', 'V', 0x16, 0x16} },
+ { 'W', CAPS, {'w', 'W', 0x17, 0x17} },
+ { 'X', CAPS, {'x', 'X', 0x18, 0x18} },
+ { 'Y', CAPS, {'y', 'Y', 0x19, 0x19} },
+ { 'Z', CAPS, {'z', 'Z', 0x1a, 0x1a} },
+
/* Legacy Ascii generators */
{ '2', NOCAPS, {'2', '@', WCH_NONE, 0} },
{ '6', NOCAPS, {'6', '^', WCH_NONE, 0x1e /* RS */} },
_____
Modified: trunk/reactos/subsys/win32k/ntuser/input.c
--- trunk/reactos/subsys/win32k/ntuser/input.c 2005-09-19 20:01:29 UTC
(rev 17935)
+++ trunk/reactos/subsys/win32k/ntuser/input.c 2005-09-19 21:11:41 UTC
(rev 17936)
@@ -516,7 +516,7 @@
ModifierState |= fsModifiers;
if (ModifierState == fsModifiers &&
- (fsModifiers == MOD_ALT || fsModifiers == MOD_WIN
|| fsModifiers == MOD_CONTROL))
+ (fsModifiers == MOD_ALT || fsModifiers ==
MOD_WIN))
{
/* First send out special notifications
* (For alt, the message that turns on accelerator
@@ -637,31 +637,7 @@
else
msg.message = WM_SYSKEYUP;
}
- else if (ModifierState & MOD_CONTROL)
- {
- if(NextKeyInput.MakeCode == 0x2E)/* Ctrl-C */
- {
- DPRINT1("Ctrl-C pressed\n");
- /* FIXME: this seems wrong! this bypass hotkeys and all
and the winhellos CRTL+C hotkey test
- dont work (anymore) */
- co_MsqPostKeyboardMessage(WM_COPY,0,0);
- continue;
- }
- else if(NextKeyInput.MakeCode == 0x2F) /*
Ctrl-V */
- {
- DPRINT1("Ctrl-V pressed\n");
-
co_MsqPostKeyboardMessage(WM_PASTE,0,0);
- continue;
- }
- else
- {
- DPRINT1("Ctrl with unknown combination
%04x\n",NextKeyInput.MakeCode);
- if (!(KeyInput.Flags & KEY_BREAK))
- msg.message = WM_KEYDOWN;
- else
- msg.message = WM_KEYUP;
- }
- }else
+ else
{
if (!(KeyInput.Flags & KEY_BREAK))
msg.message = WM_KEYDOWN;
_____
Modified: trunk/reactos/subsys/win32k/ntuser/keyboard.c
--- trunk/reactos/subsys/win32k/ntuser/keyboard.c 2005-09-19
20:01:29 UTC (rev 17935)
+++ trunk/reactos/subsys/win32k/ntuser/keyboard.c 2005-09-19
21:11:41 UTC (rev 17936)
@@ -261,7 +261,7 @@
[ModBits ^
((CapsState & CAPITAL_BIT) ? vkPtr->Attributes :
0)];
- if( CapsMod >
keyLayout->pVkToWcharTable[nMod].nModifications )
+ if( CapsMod >=
keyLayout->pVkToWcharTable[nMod].nModifications )
{
DWORD MaxBit = 1;
while( MaxBit <