Commit e63d52e7 authored by kpschoedel's avatar kpschoedel Committed by Commit bot

Fix VKEY determination for non-US layouts under Ozone.

We attempt to match Windows behaviour for the value of VKEY on
a keystroke. Some XKB layouts generate characters for AltGr+key
combinations that are not present in the reference (Windows-based)
sources, which led to mismtaches in the mappings, and incorrect VKEY
values for those keys. To avoid this, we match on any AltGr+key result
in cases the reference has none.

The corresponding test is revised to use a valid dummy character
for those cases, rather than 'NoSymbol'.

BUG=480529

Review URL: https://codereview.chromium.org/1100393005

Cr-Commit-Position: refs/heads/master@{#326695}
parent 8c677599
......@@ -96,7 +96,7 @@ const PrintableSubEntry kU0022[] = {
const PrintableSubEntry kU0023[] = {
{DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_7},
{DomCode::BACKSLASH, 1, 0, 0x0027, kAny, VKEY_OEM_2}, // apostrophe
{DomCode::BACKSLASH, 1, 1, 0x007E, kNone, VKEY_OEM_7}}; // ~, NoSymbol
{DomCode::BACKSLASH, 1, 0, 0x007E, kAny, VKEY_OEM_7}}; // ~, NoSymbol
// U+0024 dollar sign
const PrintableSubEntry kU0024[] = {
......@@ -109,19 +109,17 @@ const PrintableSubEntry kU0027[] = {
{DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_7},
{DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1},
{DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_7},
{DomCode::QUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_7}, // quote
{DomCode::BACKQUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_3}, // quote
{DomCode::BACKQUOTE, 1, 0, 0x00B7, kAny, VKEY_OEM_5}, // middle dot
{DomCode::BACKSLASH, 1, 0, kNone, kAny, VKEY_OEM_5}, // NoSymbol
{DomCode::MINUS, 1, 1, 0x003F, kNone, VKEY_OEM_4}, // ?, NoSymbol
{DomCode::MINUS, 1, 1, 0x003F, 0x00DD, VKEY_OEM_4}, // ?, Y acute
{DomCode::EQUAL, 1, 1, 0x002A, kNone, VKEY_OEM_PLUS}, // *, NoSymbol
{DomCode::QUOTE, 1, 1, 0x0040, kNone, VKEY_OEM_3}, // @, NoSymbol
{DomCode::BACKSLASH, 1, 1, 0x002A, kNone, VKEY_OEM_2}, // *, NoSymbol
{DomCode::QUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_7}, // quote
{DomCode::BACKQUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_3}, // quote
{DomCode::BACKQUOTE, 1, 0, 0x00B7, kAny, VKEY_OEM_5}, // middle dot
{DomCode::BACKSLASH, 1, 0, kNone, kAny, VKEY_OEM_5}, // NoSymbol
{DomCode::MINUS, 1, 0, 0x003F, kAny, VKEY_OEM_4}, // ?
{DomCode::EQUAL, 1, 0, 0x002A, kAny, VKEY_OEM_PLUS}, // *
{DomCode::QUOTE, 1, 0, 0x0040, kAny, VKEY_OEM_3}, // @
{DomCode::BACKSLASH, 1, 1, 0x002A, 0x00BD, VKEY_OEM_5}, // *, one half
{DomCode::BACKSLASH, 1, 1, 0x002A, 0x0141, VKEY_OEM_2}, // *, L stroke
{DomCode::KEY_Z, 1, 1, 0x0022, kNone, VKEY_Z}, // quote, NoSymbol
{DomCode::KEY_Z, 1, 1, 0x0022, 0x0158, VKEY_OEM_7}}; // quote, R caron
{DomCode::BACKSLASH, 1, 0, 0x002A, kAny, VKEY_OEM_2}, // *, NoSymbol
{DomCode::KEY_Z, 1, 1, 0x0022, 0x0158, VKEY_OEM_7}, // quote, R caron
{DomCode::KEY_Z, 1, 0, 0x0022, kAny, VKEY_Z}}; // quote
// U+0028 left parenthesis
const PrintableSubEntry kU0028[] = {
......@@ -148,9 +146,8 @@ const PrintableSubEntry kU002B[] = {
{DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
{DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
{DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2},
{DomCode::MINUS, 1, 1, 0x003F, kNone, VKEY_OEM_PLUS}, // ?, NoSymbol
{DomCode::MINUS, 1, 1, 0x003F, 0x005C, VKEY_OEM_MINUS}, // ?, backslash
{DomCode::MINUS, 1, 1, 0x003F, 0x0151, VKEY_OEM_PLUS}}; // ?, o''
{DomCode::MINUS, 1, 0, 0x003F, kAny, VKEY_OEM_PLUS}}; // ?
// U+002C comma
const PrintableSubEntry kU002C[] = {
......@@ -171,12 +168,10 @@ const PrintableSubEntry kU002D[] = {
{DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_MINUS},
{DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_MINUS},
{DomCode::SLASH, 1, 0, 0x003D, kAny, VKEY_OEM_MINUS}, // =
{DomCode::EQUAL, 1, 1, 0x005F, kNone, VKEY_OEM_MINUS}, // _, NoSymbol
{DomCode::EQUAL, 1, 1, 0x005F, 0x0157, VKEY_OEM_4}, // _, r cedilla
{DomCode::SLASH, 1, 1, 0x005F, kNone, VKEY_OEM_MINUS}, // _, NoSymbol
{DomCode::SLASH, 1, 1, 0x005F, 0x002A, VKEY_OEM_MINUS}, // _, *
{DomCode::SLASH, 1, 1, 0x005F, 0x002F, VKEY_OEM_2}, // _, /
{DomCode::SLASH, 1, 1, 0x005F, 0x006E, VKEY_OEM_MINUS}}; // _, n
{DomCode::EQUAL, 1, 1, 0x005F, 0x0157, VKEY_OEM_4}, // _, r cedilla
{DomCode::EQUAL, 1, 0, 0x005F, kAny, VKEY_OEM_MINUS}, // _
{DomCode::SLASH, 1, 1, 0x005F, 0x002F, VKEY_OEM_2}, // _, /
{DomCode::SLASH, 1, 0, 0x005F, kAny, VKEY_OEM_MINUS}}; // _
// U+002E full stop
const PrintableSubEntry kU002E[] = {
......@@ -220,16 +215,15 @@ const PrintableSubEntry kU003B[] = {
{DomCode::KEY_Z, 0, 0, kAny, kAny, VKEY_OEM_1},
{DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_PERIOD},
{DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_2}};
// U+003D =
const PrintableSubEntry kU003D[] = {
{DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8},
{DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
{DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
{DomCode::SLASH, 1, 0, 0x0025, kAny, VKEY_OEM_8}, // %
{DomCode::SLASH, 1, 0, 0x002B, kAny, VKEY_OEM_PLUS}, // +
{DomCode::MINUS, 1, 1, 0x0025, kNone, VKEY_OEM_PLUS}, // %, NoSymbol
{DomCode::MINUS, 1, 1, 0x0025, 0x002D, VKEY_OEM_MINUS}}; // %, -
{DomCode::SLASH, 1, 0, 0x0025, kAny, VKEY_OEM_8}, // %
{DomCode::SLASH, 1, 0, 0x002B, kAny, VKEY_OEM_PLUS}, // +
{DomCode::MINUS, 1, 1, 0x0025, 0x002D, VKEY_OEM_MINUS}, // %, -
{DomCode::MINUS, 1, 0, 0x0025, kAny, VKEY_OEM_PLUS}}; // %, NoSymbol
// U+003F ?
const PrintableSubEntry kU003F[] = {
......@@ -276,12 +270,7 @@ const PrintableSubEntry kU005F[] = {
const PrintableSubEntry kU0060[] = {
{DomCode::BACKQUOTE, 1, 0, kNone, kAny, VKEY_OEM_3}, // NoSymbol
{DomCode::BACKQUOTE, 1, 0, 0x00AC, kAny, VKEY_OEM_8}, // not
{DomCode::BACKQUOTE, 1, 1, 0x007E, kNone, VKEY_OEM_3}, // ~, NoSymbol
{DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0031, VKEY_OEM_3}, // ~, 1
{DomCode::BACKQUOTE, 1, 1, 0x007E, 0x003B, VKEY_OEM_3}, // ~, ;
{DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0060, VKEY_OEM_3}, // ~, `
{DomCode::BACKQUOTE, 1, 1, 0x007E, 0x00BF, VKEY_OEM_3}, // ~, inverted ?
{DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0151, VKEY_OEM_3}}; // ~, o''
{DomCode::BACKQUOTE, 1, 0, 0x007E, kAny, VKEY_OEM_3}}; // ~
// U+00A7 section
const PrintableSubEntry kU00A7[] = {
......@@ -327,9 +316,7 @@ const PrintableSubEntry kU00E2[] = {
const PrintableSubEntry kU00E4[] = {
{DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6},
{DomCode::QUOTE, 1, 0, 0x00E0, kAny, VKEY_OEM_5}, // a grave
{DomCode::QUOTE, 1, 1, 0x00C4, kNone, VKEY_OEM_7}, // A dia., NoSymbol
{DomCode::QUOTE, 1, 1, 0x00C4, 0x015A, VKEY_OEM_7}, // A dia., S acute
{DomCode::QUOTE, 1, 1, 0x00C4, 0x0159, VKEY_OEM_7}}; // A dia., r caron
{DomCode::QUOTE, 1, 0, 0x00C4, kAny, VKEY_OEM_7}}; // A dia.
// U+00E6 ae
const PrintableSubEntry kU00E6[] = {
......@@ -344,8 +331,8 @@ const PrintableSubEntry kU00E7[] = {
{DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7},
{DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2},
{DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA},
{DomCode::SEMICOLON, 1, 1, 0x00C7, kNone, VKEY_OEM_1}, // C ced., NoSy
{DomCode::SEMICOLON, 1, 1, 0x00C7, 0x00DE, VKEY_OEM_3}}; // C ced., Thorn
{DomCode::SEMICOLON, 1, 1, 0x00C7, 0x00DE, VKEY_OEM_3}, // C ced., Thorn
{DomCode::SEMICOLON, 1, 0, 0x00C7, kAny, VKEY_OEM_1}}; // C ced., NoSy
// U+00E8 e grave
const PrintableSubEntry kU00E8[] = {
......@@ -386,9 +373,9 @@ const PrintableSubEntry kU00F6[] = {
{DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_OEM_3},
{DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
{DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4},
{DomCode::SEMICOLON, 1, 0, 0x00E9, kAny, VKEY_OEM_7}, // e acute
{DomCode::SEMICOLON, 1, 1, 0x00D6, kNone, VKEY_OEM_3}, // O dia., NoSy
{DomCode::SEMICOLON, 1, 1, 0x00D6, 0x0162, VKEY_OEM_3}}; // O dia., T ced.
{DomCode::SEMICOLON, 1, 0, 0x00E9, kAny, VKEY_OEM_7}, // e acute
{DomCode::SEMICOLON, 1, 1, 0x00D6, 0x0162, VKEY_OEM_3}, // O dia., T ced.
{DomCode::SEMICOLON, 1, 0, 0x00D6, kAny, VKEY_OEM_3}}; // O diaresis
// U+00F8 o stroke
const PrintableSubEntry kU00F8[] = {
......@@ -408,10 +395,10 @@ const PrintableSubEntry kU00FA[] = {
// U+00FC u diaeresis
const PrintableSubEntry kU00FC[] = {
{DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_W},
{DomCode::BRACKET_LEFT, 1, 0, 0x00E8, kAny, VKEY_OEM_1}, // e grave
{DomCode::MINUS, 1, 1, 0x00DC, kNone, VKEY_OEM_2}, // U dia., NoSy
{DomCode::BRACKET_LEFT, 1, 1, 0x00DC, kNone, VKEY_OEM_1}, // U dia., NoSy
{DomCode::BRACKET_LEFT, 1, 1, 0x00DC, 0x0141, VKEY_OEM_3}}; // U dia., L-
{DomCode::BRACKET_LEFT, 1, 0, 0x00E8, kAny, VKEY_OEM_1}, // e grave
{DomCode::MINUS, 1, 0, 0x00DC, kAny, VKEY_OEM_2}, // U diaresis
{DomCode::BRACKET_LEFT, 1, 1, 0x00DC, 0x0141, VKEY_OEM_3}, // U dia., L-
{DomCode::BRACKET_LEFT, 1, 0, 0x00DC, kAny, VKEY_OEM_1}}; // U diaresis
// U+0103 a breve
const PrintableSubEntry kU0103[] = {
......@@ -445,13 +432,13 @@ const PrintableSubEntry kU0117[] = {
// U+0119 e ogonek
const PrintableSubEntry kU0119[] = {
{DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3},
{DomCode::SLASH, 1, 1, 0x0118, kNone, VKEY_OEM_MINUS}, // E ogonek, NoSy
{DomCode::SLASH, 1, 1, 0x0118, 0x006E, VKEY_OEM_2}}; // E ogonek, n
{DomCode::SLASH, 1, 1, 0x0118, 0x006E, VKEY_OEM_2}, // E ogonek, n
{DomCode::SLASH, 1, 0, 0x0118, kAny, VKEY_OEM_MINUS}}; // E ogonek
// U+012F i ogonek
const PrintableSubEntry kU012F[] = {
{DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5},
{DomCode::BRACKET_LEFT, 1, 1, 0x012E, kNone, VKEY_OEM_4}}; // Iogonek, NoSy
{DomCode::BRACKET_LEFT, 1, 0, 0x012E, kAny, VKEY_OEM_4}}; // Iogonek
// U+0142 l stroke
const PrintableSubEntry kU0142[] = {
......@@ -481,8 +468,8 @@ const PrintableSubEntry kU016B[] = {
// U+0173 u ogonek
const PrintableSubEntry kU0173[] = {
{DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7},
{DomCode::SEMICOLON, 1, 1, 0x0172, kNone, VKEY_OEM_3}, // U ogo., NoSy
{DomCode::SEMICOLON, 1, 1, 0x0172, 0x0162, VKEY_OEM_1}}; // U ogo., T ced.
{DomCode::SEMICOLON, 1, 1, 0x0172, 0x0162, VKEY_OEM_1}, // U ogo., T ced.
{DomCode::SEMICOLON, 1, 0, 0x0172, kAny, VKEY_OEM_3}}; // U ogonek
// U+017C z dot above
const PrintableSubEntry kU017C[] = {
......@@ -973,4 +960,5 @@ void XkbKeyboardLayoutEngine::ParseLayoutName(const std::string& layout_name,
*layout_variant = layout_name.substr(dash_index + 1);
}
}
} // namespace ui
......@@ -142,7 +142,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// number sign, apostrophe, *
/* 5 */ {0x0023, 0x0027, 0x2461, DomCode::BACKSLASH, VKEY_OEM_2},
// number sign, tilde, unmapped
/* 6 */ {0x0023, 0x007E, 0x0000, DomCode::BACKSLASH, VKEY_OEM_7},
/* 6 */ {0x0023, 0x007E, 0x2461, DomCode::BACKSLASH, VKEY_OEM_7},
// number sign, *, *
/* 7 */ {0x0023, 0x2460, 0x2461, DomCode::BACKQUOTE, VKEY_OEM_7},
// dollar sign, *, *
......@@ -156,7 +156,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// apostrophe, unmapped, *
/* 12 */ {0x0027, 0x0000, 0x2461, DomCode::BACKSLASH, VKEY_OEM_5},
// apostrophe, quotation mark, unmapped
/* 13 */ {0x0027, 0x0022, 0x0000, DomCode::KEY_Z, VKEY_Z},
/* 13 */ {0x0027, 0x0022, 0x2461, DomCode::KEY_Z, VKEY_Z},
// apostrophe, quotation mark, R caron
/* 14 */ {0x0027, 0x0022, 0x0158, DomCode::KEY_Z, VKEY_OEM_7},
// apostrophe, quotation mark, *
......@@ -164,19 +164,19 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// apostrophe, quotation mark, *
/* 16 */ {0x0027, 0x0022, 0x2461, DomCode::QUOTE, VKEY_OEM_7},
// apostrophe, asterisk, unmapped
/* 17 */ {0x0027, 0x002A, 0x0000, DomCode::BACKSLASH, VKEY_OEM_2},
/* 17 */ {0x0027, 0x002A, 0x2461, DomCode::BACKSLASH, VKEY_OEM_2},
// apostrophe, asterisk, unmapped
/* 18 */ {0x0027, 0x002A, 0x0000, DomCode::EQUAL, VKEY_OEM_PLUS},
/* 18 */ {0x0027, 0x002A, 0x2461, DomCode::EQUAL, VKEY_OEM_PLUS},
// apostrophe, asterisk, vulgar fraction one half
/* 19 */ {0x0027, 0x002A, 0x00BD, DomCode::BACKSLASH, VKEY_OEM_5},
// apostrophe, asterisk, L stroke
/* 20 */ {0x0027, 0x002A, 0x0141, DomCode::BACKSLASH, VKEY_OEM_2},
// apostrophe, question mark, unmapped
/* 21 */ {0x0027, 0x003F, 0x0000, DomCode::MINUS, VKEY_OEM_4},
/* 21 */ {0x0027, 0x003F, 0x2461, DomCode::MINUS, VKEY_OEM_4},
// apostrophe, question mark, Y acute
/* 22 */ {0x0027, 0x003F, 0x00DD, DomCode::MINUS, VKEY_OEM_4},
// apostrophe, commercial at, unmapped
/* 23 */ {0x0027, 0x0040, 0x0000, DomCode::QUOTE, VKEY_OEM_3},
/* 23 */ {0x0027, 0x0040, 0x2461, DomCode::QUOTE, VKEY_OEM_3},
// apostrophe, middle dot, *
/* 24 */ {0x0027, 0x00B7, 0x2461, DomCode::BACKQUOTE, VKEY_OEM_5},
// apostrophe, *, *
......@@ -204,7 +204,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// asterisk, *, *
/* 36 */ {0x002A, 0x2460, 0x2461, DomCode::BRACKET_RIGHT, VKEY_OEM_1},
// plus sign, question mark, unmapped
/* 37 */ {0x002B, 0x003F, 0x0000, DomCode::MINUS, VKEY_OEM_PLUS},
/* 37 */ {0x002B, 0x003F, 0x2461, DomCode::MINUS, VKEY_OEM_PLUS},
// plus sign, question mark, reverse solidus
/* 38 */ {0x002B, 0x003F, 0x005C, DomCode::MINUS, VKEY_OEM_MINUS},
// plus sign, question mark, o double acute
......@@ -240,9 +240,9 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// hyphen-minus, equals sign, *
/* 54 */ {0x002D, 0x003D, 0x2461, DomCode::SLASH, VKEY_OEM_MINUS},
// hyphen-minus, low line, unmapped
/* 55 */ {0x002D, 0x005F, 0x0000, DomCode::EQUAL, VKEY_OEM_MINUS},
/* 55 */ {0x002D, 0x005F, 0x2461, DomCode::EQUAL, VKEY_OEM_MINUS},
// hyphen-minus, low line, unmapped
/* 56 */ {0x002D, 0x005F, 0x0000, DomCode::SLASH, VKEY_OEM_MINUS},
/* 56 */ {0x002D, 0x005F, 0x2461, DomCode::SLASH, VKEY_OEM_MINUS},
// hyphen-minus, low line, asterisk
/* 57 */ {0x002D, 0x005F, 0x002A, DomCode::SLASH, VKEY_OEM_MINUS},
// hyphen-minus, low line, solidus
......@@ -326,7 +326,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// less-than sign, *, *
/* 97 */ {0x003C, 0x2460, 0x2461, DomCode::NONE, VKEY_OEM_5},
// equals sign, percent sign, unmapped
/* 98 */ {0x003D, 0x0025, 0x0000, DomCode::MINUS, VKEY_OEM_PLUS},
/* 98 */ {0x003D, 0x0025, 0x2461, DomCode::MINUS, VKEY_OEM_PLUS},
// equals sign, percent sign, hyphen-minus
/* 99 */ {0x003D, 0x0025, 0x002D, DomCode::MINUS, VKEY_OEM_MINUS},
// equals sign, percent sign, *
......@@ -388,7 +388,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// grave accent, unmapped, *
/* 128 */ {0x0060, 0x0000, 0x2461, DomCode::BACKQUOTE, VKEY_OEM_3},
// grave accent, tilde, unmapped
/* 129 */ {0x0060, 0x007E, 0x0000, DomCode::BACKQUOTE, VKEY_OEM_3},
/* 129 */ {0x0060, 0x007E, 0x2461, DomCode::BACKQUOTE, VKEY_OEM_3},
// grave accent, tilde, digit one
/* 130 */ {0x0060, 0x007E, 0x0031, DomCode::BACKQUOTE, VKEY_OEM_3},
// grave accent, tilde, semicolon
......@@ -464,7 +464,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// a circumflex, *, *
/* 166 */ {0x00E2, 0x2460, 0x2461, DomCode::DIGIT2, VKEY_2},
// a diaeresis, A diaeresis, unmapped
/* 167 */ {0x00E4, 0x00C4, 0x0000, DomCode::QUOTE, VKEY_OEM_7},
/* 167 */ {0x00E4, 0x00C4, 0x2461, DomCode::QUOTE, VKEY_OEM_7},
// a diaeresis, A diaeresis, r caron
/* 168 */ {0x00E4, 0x00C4, 0x0159, DomCode::QUOTE, VKEY_OEM_7},
// a diaeresis, A diaeresis, S acute
......@@ -480,7 +480,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// ae, *, *
/* 174 */ {0x00E6, 0x2460, 0x2461, DomCode::SEMICOLON, VKEY_OEM_3},
// c cedilla, C cedilla, unmapped
/* 175 */ {0x00E7, 0x00C7, 0x0000, DomCode::SEMICOLON, VKEY_OEM_1},
/* 175 */ {0x00E7, 0x00C7, 0x2461, DomCode::SEMICOLON, VKEY_OEM_1},
// c cedilla, C cedilla, Thorn
/* 176 */ {0x00E7, 0x00C7, 0x00DE, DomCode::SEMICOLON, VKEY_OEM_3},
// c cedilla, *, *
......@@ -542,7 +542,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// o tilde, *, *
/* 205 */ {0x00F5, 0x2460, 0x2461, DomCode::NONE, VKEY_OEM_4},
// o diaeresis, O diaeresis, unmapped
/* 206 */ {0x00F6, 0x00D6, 0x0000, DomCode::SEMICOLON, VKEY_OEM_3},
/* 206 */ {0x00F6, 0x00D6, 0x2461, DomCode::SEMICOLON, VKEY_OEM_3},
// o diaeresis, O diaeresis, T cedilla
/* 207 */ {0x00F6, 0x00D6, 0x0162, DomCode::SEMICOLON, VKEY_OEM_3},
// o diaeresis, e acute, *
......@@ -568,9 +568,9 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// u acute, *, *
/* 218 */ {0x00FA, 0x2460, 0x2461, DomCode::BRACKET_RIGHT, VKEY_OEM_6},
// u diaeresis, U diaeresis, unmapped
/* 219 */ {0x00FC, 0x00DC, 0x0000, DomCode::BRACKET_LEFT, VKEY_OEM_1},
/* 219 */ {0x00FC, 0x00DC, 0x2461, DomCode::BRACKET_LEFT, VKEY_OEM_1},
// u diaeresis, U diaeresis, unmapped
/* 220 */ {0x00FC, 0x00DC, 0x0000, DomCode::MINUS, VKEY_OEM_2},
/* 220 */ {0x00FC, 0x00DC, 0x2461, DomCode::MINUS, VKEY_OEM_2},
// u diaeresis, U diaeresis, L stroke
/* 221 */ {0x00FC, 0x00DC, 0x0141, DomCode::BRACKET_LEFT, VKEY_OEM_3},
// u diaeresis, e grave, *
......@@ -618,7 +618,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// e dot above, *, *
/* 243 */ {0x0117, 0x2460, 0x2461, DomCode::QUOTE, VKEY_OEM_7},
// e ogonek, E ogonek, unmapped
/* 244 */ {0x0119, 0x0118, 0x0000, DomCode::SLASH, VKEY_OEM_MINUS},
/* 244 */ {0x0119, 0x0118, 0x2461, DomCode::SLASH, VKEY_OEM_MINUS},
// e ogonek, E ogonek, n
/* 245 */ {0x0119, 0x0118, 0x006E, DomCode::SLASH, VKEY_OEM_2},
// e ogonek, *, *
......@@ -634,7 +634,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// i macron, *, *
/* 251 */ {0x012B, 0x2460, 0x2461, DomCode::NONE, VKEY_OEM_6},
// i ogonek, I ogonek, unmapped
/* 252 */ {0x012F, 0x012E, 0x0000, DomCode::BRACKET_LEFT, VKEY_OEM_4},
/* 252 */ {0x012F, 0x012E, 0x2461, DomCode::BRACKET_LEFT, VKEY_OEM_4},
// i ogonek, *, *
/* 253 */ {0x012F, 0x2460, 0x2461, DomCode::DIGIT5, VKEY_5},
// dotless i, *, *
......@@ -688,7 +688,7 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) {
// u double acute, *, *
/* 278 */ {0x0171, 0x2460, 0x2461, DomCode::NONE, VKEY_OEM_5},
// u ogonek, U ogonek, unmapped
/* 279 */ {0x0173, 0x0172, 0x0000, DomCode::SEMICOLON, VKEY_OEM_3},
/* 279 */ {0x0173, 0x0172, 0x2461, DomCode::SEMICOLON, VKEY_OEM_3},
// u ogonek, U ogonek, T cedilla
/* 280 */ {0x0173, 0x0172, 0x0162, DomCode::SEMICOLON, VKEY_OEM_1},
// u ogonek, *, *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment