Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1460)

Side by Side Diff: ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc

Issue 1109873003: Fix VKEY determination for non-US layouts under Ozone. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2357
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.h" 5 #include "ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.h"
6 6
7 #include <xkbcommon/xkbcommon-names.h> 7 #include <xkbcommon/xkbcommon-names.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 89
90 // U+0022 quote 90 // U+0022 quote
91 const PrintableSubEntry kU0022[] = { 91 const PrintableSubEntry kU0022[] = {
92 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, 92 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2},
93 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}}; 93 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}};
94 94
95 // U+0023 number sign 95 // U+0023 number sign
96 const PrintableSubEntry kU0023[] = { 96 const PrintableSubEntry kU0023[] = {
97 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, 97 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_7},
98 {DomCode::BACKSLASH, 1, 0, 0x0027, kAny, VKEY_OEM_2}, // apostrophe 98 {DomCode::BACKSLASH, 1, 0, 0x0027, kAny, VKEY_OEM_2}, // apostrophe
99 {DomCode::BACKSLASH, 1, 1, 0x007E, kNone, VKEY_OEM_7}}; // ~, NoSymbol 99 {DomCode::BACKSLASH, 1, 0, 0x007E, kAny, VKEY_OEM_7}}; // ~, NoSymbol
100 100
101 // U+0024 dollar sign 101 // U+0024 dollar sign
102 const PrintableSubEntry kU0024[] = { 102 const PrintableSubEntry kU0024[] = {
103 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, 103 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1},
104 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_8}}; 104 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_8}};
105 105
106 // U+0027 apostrophe 106 // U+0027 apostrophe
107 const PrintableSubEntry kU0027[] = { 107 const PrintableSubEntry kU0027[] = {
108 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, 108 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4},
109 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_7}, 109 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_7},
110 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, 110 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1},
111 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_7}, 111 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_7},
112 {DomCode::QUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_7}, // quote 112 {DomCode::QUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_7}, // quote
113 {DomCode::BACKQUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_3}, // quote 113 {DomCode::BACKQUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_3}, // quote
114 {DomCode::BACKQUOTE, 1, 0, 0x00B7, kAny, VKEY_OEM_5}, // middle dot 114 {DomCode::BACKQUOTE, 1, 0, 0x00B7, kAny, VKEY_OEM_5}, // middle dot
115 {DomCode::BACKSLASH, 1, 0, kNone, kAny, VKEY_OEM_5}, // NoSymbol 115 {DomCode::BACKSLASH, 1, 0, kNone, kAny, VKEY_OEM_5}, // NoSymbol
116 {DomCode::MINUS, 1, 1, 0x003F, kNone, VKEY_OEM_4}, // ?, NoSymbol 116 {DomCode::MINUS, 1, 0, 0x003F, kAny, VKEY_OEM_4}, // ?
117 {DomCode::MINUS, 1, 1, 0x003F, 0x00DD, VKEY_OEM_4}, // ?, Y acute 117 {DomCode::EQUAL, 1, 0, 0x002A, kAny, VKEY_OEM_PLUS}, // *
118 {DomCode::EQUAL, 1, 1, 0x002A, kNone, VKEY_OEM_PLUS}, // *, NoSymbol 118 {DomCode::QUOTE, 1, 0, 0x0040, kAny, VKEY_OEM_3}, // @
119 {DomCode::QUOTE, 1, 1, 0x0040, kNone, VKEY_OEM_3}, // @, NoSymbol
120 {DomCode::BACKSLASH, 1, 1, 0x002A, kNone, VKEY_OEM_2}, // *, NoSymbol
121 {DomCode::BACKSLASH, 1, 1, 0x002A, 0x00BD, VKEY_OEM_5}, // *, one half 119 {DomCode::BACKSLASH, 1, 1, 0x002A, 0x00BD, VKEY_OEM_5}, // *, one half
122 {DomCode::BACKSLASH, 1, 1, 0x002A, 0x0141, VKEY_OEM_2}, // *, L stroke 120 {DomCode::BACKSLASH, 1, 0, 0x002A, kAny, VKEY_OEM_2}, // *, NoSymbol
123 {DomCode::KEY_Z, 1, 1, 0x0022, kNone, VKEY_Z}, // quote, NoSymbol 121 {DomCode::KEY_Z, 1, 1, 0x0022, 0x0158, VKEY_OEM_7}, // quote, R caron
124 {DomCode::KEY_Z, 1, 1, 0x0022, 0x0158, VKEY_OEM_7}}; // quote, R caron 122 {DomCode::KEY_Z, 1, 0, 0x0022, kAny, VKEY_Z}}; // quote
125 123
126 // U+0028 left parenthesis 124 // U+0028 left parenthesis
127 const PrintableSubEntry kU0028[] = { 125 const PrintableSubEntry kU0028[] = {
128 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, 126 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5},
129 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, 127 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9},
130 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; 128 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}};
131 129
132 // U+0029 right parenthesis 130 // U+0029 right parenthesis
133 const PrintableSubEntry kU0029[] = { 131 const PrintableSubEntry kU0029[] = {
134 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_0}, 132 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_0},
135 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_4}, 133 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_4},
136 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; 134 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}};
137 135
138 // U+002A * 136 // U+002A *
139 const PrintableSubEntry kU002A[] = { 137 const PrintableSubEntry kU002A[] = {
140 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, 138 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1},
141 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; 139 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}};
142 140
143 // U+002B plus sign 141 // U+002B plus sign
144 const PrintableSubEntry kU002B[] = { 142 const PrintableSubEntry kU002B[] = {
145 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, 143 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1},
146 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, 144 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
147 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, 145 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
148 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, 146 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
149 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, 147 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
150 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, 148 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2},
151 {DomCode::MINUS, 1, 1, 0x003F, kNone, VKEY_OEM_PLUS}, // ?, NoSymbol
152 {DomCode::MINUS, 1, 1, 0x003F, 0x005C, VKEY_OEM_MINUS}, // ?, backslash 149 {DomCode::MINUS, 1, 1, 0x003F, 0x005C, VKEY_OEM_MINUS}, // ?, backslash
153 {DomCode::MINUS, 1, 1, 0x003F, 0x0151, VKEY_OEM_PLUS}}; // ?, o'' 150 {DomCode::MINUS, 1, 0, 0x003F, kAny, VKEY_OEM_PLUS}}; // ?
154 151
155 // U+002C comma 152 // U+002C comma
156 const PrintableSubEntry kU002C[] = { 153 const PrintableSubEntry kU002C[] = {
157 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, 154 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3},
158 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, 155 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5},
159 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, 156 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6},
160 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, 157 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9},
161 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, 158 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_OEM_COMMA},
162 {DomCode::KEY_V, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, 159 {DomCode::KEY_V, 0, 0, kAny, kAny, VKEY_OEM_COMMA},
163 {DomCode::KEY_M, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, 160 {DomCode::KEY_M, 0, 0, kAny, kAny, VKEY_OEM_COMMA},
164 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}}; 161 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}};
165 162
166 // U+002D hyphen-minus 163 // U+002D hyphen-minus
167 const PrintableSubEntry kU002D[] = { 164 const PrintableSubEntry kU002D[] = {
168 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, 165 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2},
169 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, 166 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6},
170 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, 167 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS},
171 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, 168 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_MINUS},
172 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, 169 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_MINUS},
173 {DomCode::SLASH, 1, 0, 0x003D, kAny, VKEY_OEM_MINUS}, // = 170 {DomCode::SLASH, 1, 0, 0x003D, kAny, VKEY_OEM_MINUS}, // =
174 {DomCode::EQUAL, 1, 1, 0x005F, kNone, VKEY_OEM_MINUS}, // _, NoSymbol 171 {DomCode::EQUAL, 1, 1, 0x005F, 0x0157, VKEY_OEM_4}, // _, r cedilla
175 {DomCode::EQUAL, 1, 1, 0x005F, 0x0157, VKEY_OEM_4}, // _, r cedilla 172 {DomCode::EQUAL, 1, 0, 0x005F, kAny, VKEY_OEM_MINUS}, // _
176 {DomCode::SLASH, 1, 1, 0x005F, kNone, VKEY_OEM_MINUS}, // _, NoSymbol 173 {DomCode::SLASH, 1, 1, 0x005F, 0x002F, VKEY_OEM_2}, // _, /
177 {DomCode::SLASH, 1, 1, 0x005F, 0x002A, VKEY_OEM_MINUS}, // _, * 174 {DomCode::SLASH, 1, 0, 0x005F, kAny, VKEY_OEM_MINUS}}; // _
178 {DomCode::SLASH, 1, 1, 0x005F, 0x002F, VKEY_OEM_2}, // _, /
179 {DomCode::SLASH, 1, 1, 0x005F, 0x006E, VKEY_OEM_MINUS}}; // _, n
180 175
181 // U+002E full stop 176 // U+002E full stop
182 const PrintableSubEntry kU002E[] = { 177 const PrintableSubEntry kU002E[] = {
183 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, 178 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7},
184 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, 179 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8},
185 {DomCode::KEY_E, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, 180 {DomCode::KEY_E, 0, 0, kAny, kAny, VKEY_OEM_PERIOD},
186 {DomCode::KEY_R, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, 181 {DomCode::KEY_R, 0, 0, kAny, kAny, VKEY_OEM_PERIOD},
187 {DomCode::KEY_O, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, 182 {DomCode::KEY_O, 0, 0, kAny, kAny, VKEY_OEM_PERIOD},
188 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, 183 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7},
189 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, 184 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD},
(...skipping 23 matching lines...) Expand all
213 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, 208 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4},
214 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, 209 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8},
215 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_1}, 210 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_1},
216 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, 211 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1},
217 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, 212 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6},
218 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, 213 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1},
219 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, 214 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_3},
220 {DomCode::KEY_Z, 0, 0, kAny, kAny, VKEY_OEM_1}, 215 {DomCode::KEY_Z, 0, 0, kAny, kAny, VKEY_OEM_1},
221 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, 216 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_PERIOD},
222 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; 217 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_2}};
223
224 // U+003D = 218 // U+003D =
225 const PrintableSubEntry kU003D[] = { 219 const PrintableSubEntry kU003D[] = {
226 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, 220 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8},
227 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, 221 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
228 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, 222 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
229 {DomCode::SLASH, 1, 0, 0x0025, kAny, VKEY_OEM_8}, // % 223 {DomCode::SLASH, 1, 0, 0x0025, kAny, VKEY_OEM_8}, // %
230 {DomCode::SLASH, 1, 0, 0x002B, kAny, VKEY_OEM_PLUS}, // + 224 {DomCode::SLASH, 1, 0, 0x002B, kAny, VKEY_OEM_PLUS}, // +
231 {DomCode::MINUS, 1, 1, 0x0025, kNone, VKEY_OEM_PLUS}, // %, NoSymbol 225 {DomCode::MINUS, 1, 1, 0x0025, 0x002D, VKEY_OEM_MINUS}, // %, -
232 {DomCode::MINUS, 1, 1, 0x0025, 0x002D, VKEY_OEM_MINUS}}; // %, - 226 {DomCode::MINUS, 1, 0, 0x0025, kAny, VKEY_OEM_PLUS}}; // %, NoSymbol
233 227
234 // U+003F ? 228 // U+003F ?
235 const PrintableSubEntry kU003F[] = { 229 const PrintableSubEntry kU003F[] = {
236 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, 230 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2},
237 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, 231 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7},
238 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, 232 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8},
239 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}}; 233 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}};
240 234
241 // U+0040 @ 235 // U+0040 @
242 const PrintableSubEntry kU0040[] = { 236 const PrintableSubEntry kU0040[] = {
(...skipping 26 matching lines...) Expand all
269 263
270 // U+005F _ 264 // U+005F _
271 const PrintableSubEntry kU005F[] = { 265 const PrintableSubEntry kU005F[] = {
272 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, 266 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8},
273 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}}; 267 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}};
274 268
275 // U+0060 grave accent 269 // U+0060 grave accent
276 const PrintableSubEntry kU0060[] = { 270 const PrintableSubEntry kU0060[] = {
277 {DomCode::BACKQUOTE, 1, 0, kNone, kAny, VKEY_OEM_3}, // NoSymbol 271 {DomCode::BACKQUOTE, 1, 0, kNone, kAny, VKEY_OEM_3}, // NoSymbol
278 {DomCode::BACKQUOTE, 1, 0, 0x00AC, kAny, VKEY_OEM_8}, // not 272 {DomCode::BACKQUOTE, 1, 0, 0x00AC, kAny, VKEY_OEM_8}, // not
279 {DomCode::BACKQUOTE, 1, 1, 0x007E, kNone, VKEY_OEM_3}, // ~, NoSymbol 273 {DomCode::BACKQUOTE, 1, 0, 0x007E, kAny, VKEY_OEM_3}}; // ~
280 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0031, VKEY_OEM_3}, // ~, 1
281 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x003B, VKEY_OEM_3}, // ~, ;
282 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0060, VKEY_OEM_3}, // ~, `
283 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x00BF, VKEY_OEM_3}, // ~, inverted ?
284 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0151, VKEY_OEM_3}}; // ~, o''
285 274
286 // U+00A7 section 275 // U+00A7 section
287 const PrintableSubEntry kU00A7[] = { 276 const PrintableSubEntry kU00A7[] = {
288 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, 277 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4},
289 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, 278 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6},
290 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, 279 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7},
291 {DomCode::BACKQUOTE, 1, 0, 0x00B0, kAny, VKEY_OEM_2}, // degree 280 {DomCode::BACKQUOTE, 1, 0, 0x00B0, kAny, VKEY_OEM_2}, // degree
292 {DomCode::BACKQUOTE, 1, 0, 0x00BD, kAny, VKEY_OEM_5}}; // one half 281 {DomCode::BACKQUOTE, 1, 0, 0x00BD, kAny, VKEY_OEM_5}}; // one half
293 282
294 // U+00AB left-pointing double angle quote 283 // U+00AB left-pointing double angle quote
(...skipping 25 matching lines...) Expand all
320 309
321 // U+00E2 a circumflex 310 // U+00E2 a circumflex
322 const PrintableSubEntry kU00E2[] = { 311 const PrintableSubEntry kU00E2[] = {
323 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, 312 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2},
324 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; 313 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}};
325 314
326 // U+00E4 a diaeresis 315 // U+00E4 a diaeresis
327 const PrintableSubEntry kU00E4[] = { 316 const PrintableSubEntry kU00E4[] = {
328 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, 317 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6},
329 {DomCode::QUOTE, 1, 0, 0x00E0, kAny, VKEY_OEM_5}, // a grave 318 {DomCode::QUOTE, 1, 0, 0x00E0, kAny, VKEY_OEM_5}, // a grave
330 {DomCode::QUOTE, 1, 1, 0x00C4, kNone, VKEY_OEM_7}, // A dia., NoSymbol 319 {DomCode::QUOTE, 1, 0, 0x00C4, kAny, VKEY_OEM_7}}; // A dia.
331 {DomCode::QUOTE, 1, 1, 0x00C4, 0x015A, VKEY_OEM_7}, // A dia., S acute
332 {DomCode::QUOTE, 1, 1, 0x00C4, 0x0159, VKEY_OEM_7}}; // A dia., r caron
333 320
334 // U+00E6 ae 321 // U+00E6 ae
335 const PrintableSubEntry kU00E6[] = { 322 const PrintableSubEntry kU00E6[] = {
336 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, 323 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3},
337 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; 324 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}};
338 325
339 // U+00E7 c cedilla 326 // U+00E7 c cedilla
340 const PrintableSubEntry kU00E7[] = { 327 const PrintableSubEntry kU00E7[] = {
341 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, 328 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9},
342 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, 329 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4},
343 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, 330 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6},
344 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, 331 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7},
345 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, 332 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2},
346 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, 333 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA},
347 {DomCode::SEMICOLON, 1, 1, 0x00C7, kNone, VKEY_OEM_1}, // C ced., NoSy 334 {DomCode::SEMICOLON, 1, 1, 0x00C7, 0x00DE, VKEY_OEM_3}, // C ced., Thorn
348 {DomCode::SEMICOLON, 1, 1, 0x00C7, 0x00DE, VKEY_OEM_3}}; // C ced., Thorn 335 {DomCode::SEMICOLON, 1, 0, 0x00C7, kAny, VKEY_OEM_1}}; // C ced., NoSy
349 336
350 // U+00E8 e grave 337 // U+00E8 e grave
351 const PrintableSubEntry kU00E8[] = { 338 const PrintableSubEntry kU00E8[] = {
352 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, 339 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7},
353 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, 340 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1},
354 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}}; 341 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}};
355 342
356 // U+00E9 e acute 343 // U+00E9 e acute
357 const PrintableSubEntry kU00E9[] = { 344 const PrintableSubEntry kU00E9[] = {
358 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, 345 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2},
(...skipping 20 matching lines...) Expand all
379 // U+00F4 o circumflex 366 // U+00F4 o circumflex
380 const PrintableSubEntry kU00F4[] = { 367 const PrintableSubEntry kU00F4[] = {
381 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, 368 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4},
382 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}}; 369 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}};
383 370
384 // U+00F6 o diaeresis 371 // U+00F6 o diaeresis
385 const PrintableSubEntry kU00F6[] = { 372 const PrintableSubEntry kU00F6[] = {
386 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_OEM_3}, 373 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_OEM_3},
387 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, 374 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
388 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, 375 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4},
389 {DomCode::SEMICOLON, 1, 0, 0x00E9, kAny, VKEY_OEM_7}, // e acute 376 {DomCode::SEMICOLON, 1, 0, 0x00E9, kAny, VKEY_OEM_7}, // e acute
390 {DomCode::SEMICOLON, 1, 1, 0x00D6, kNone, VKEY_OEM_3}, // O dia., NoSy 377 {DomCode::SEMICOLON, 1, 1, 0x00D6, 0x0162, VKEY_OEM_3}, // O dia., T ced.
391 {DomCode::SEMICOLON, 1, 1, 0x00D6, 0x0162, VKEY_OEM_3}}; // O dia., T ced. 378 {DomCode::SEMICOLON, 1, 0, 0x00D6, kAny, VKEY_OEM_3}}; // O diaresis
392 379
393 // U+00F8 o stroke 380 // U+00F8 o stroke
394 const PrintableSubEntry kU00F8[] = { 381 const PrintableSubEntry kU00F8[] = {
395 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, 382 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3},
396 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; 383 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}};
397 384
398 // U+00F9 u grave 385 // U+00F9 u grave
399 const PrintableSubEntry kU00F9[] = { 386 const PrintableSubEntry kU00F9[] = {
400 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, 387 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3},
401 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; 388 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}};
402 389
403 // U+00FA u acute 390 // U+00FA u acute
404 const PrintableSubEntry kU00FA[] = { 391 const PrintableSubEntry kU00FA[] = {
405 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, 392 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4},
406 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; 393 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}};
407 394
408 // U+00FC u diaeresis 395 // U+00FC u diaeresis
409 const PrintableSubEntry kU00FC[] = { 396 const PrintableSubEntry kU00FC[] = {
410 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_W}, 397 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_W},
411 {DomCode::BRACKET_LEFT, 1, 0, 0x00E8, kAny, VKEY_OEM_1}, // e grave 398 {DomCode::BRACKET_LEFT, 1, 0, 0x00E8, kAny, VKEY_OEM_1}, // e grave
412 {DomCode::MINUS, 1, 1, 0x00DC, kNone, VKEY_OEM_2}, // U dia., NoSy 399 {DomCode::MINUS, 1, 0, 0x00DC, kAny, VKEY_OEM_2}, // U diaresis
413 {DomCode::BRACKET_LEFT, 1, 1, 0x00DC, kNone, VKEY_OEM_1}, // U dia., NoSy 400 {DomCode::BRACKET_LEFT, 1, 1, 0x00DC, 0x0141, VKEY_OEM_3}, // U dia., L-
414 {DomCode::BRACKET_LEFT, 1, 1, 0x00DC, 0x0141, VKEY_OEM_3}}; // U dia., L- 401 {DomCode::BRACKET_LEFT, 1, 0, 0x00DC, kAny, VKEY_OEM_1}}; // U diaresis
415 402
416 // U+0103 a breve 403 // U+0103 a breve
417 const PrintableSubEntry kU0103[] = { 404 const PrintableSubEntry kU0103[] = {
418 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, 405 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1},
419 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}}; 406 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}};
420 407
421 // U+0105 a ogonek 408 // U+0105 a ogonek
422 const PrintableSubEntry kU0105[] = { 409 const PrintableSubEntry kU0105[] = {
423 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, 410 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1},
424 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, 411 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q},
(...skipping 13 matching lines...) Expand all
438 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; 425 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}};
439 426
440 // U+0117 e dot above 427 // U+0117 e dot above
441 const PrintableSubEntry kU0117[] = { 428 const PrintableSubEntry kU0117[] = {
442 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, 429 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4},
443 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; 430 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}};
444 431
445 // U+0119 e ogonek 432 // U+0119 e ogonek
446 const PrintableSubEntry kU0119[] = { 433 const PrintableSubEntry kU0119[] = {
447 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, 434 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3},
448 {DomCode::SLASH, 1, 1, 0x0118, kNone, VKEY_OEM_MINUS}, // E ogonek, NoSy 435 {DomCode::SLASH, 1, 1, 0x0118, 0x006E, VKEY_OEM_2}, // E ogonek, n
449 {DomCode::SLASH, 1, 1, 0x0118, 0x006E, VKEY_OEM_2}}; // E ogonek, n 436 {DomCode::SLASH, 1, 0, 0x0118, kAny, VKEY_OEM_MINUS}}; // E ogonek
450 437
451 // U+012F i ogonek 438 // U+012F i ogonek
452 const PrintableSubEntry kU012F[] = { 439 const PrintableSubEntry kU012F[] = {
453 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, 440 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5},
454 {DomCode::BRACKET_LEFT, 1, 1, 0x012E, kNone, VKEY_OEM_4}}; // Iogonek, NoSy 441 {DomCode::BRACKET_LEFT, 1, 0, 0x012E, kAny, VKEY_OEM_4}}; // Iogonek
455 442
456 // U+0142 l stroke 443 // U+0142 l stroke
457 const PrintableSubEntry kU0142[] = { 444 const PrintableSubEntry kU0142[] = {
458 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, 445 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1},
459 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; 446 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}};
460 447
461 // U+015F s cedilla 448 // U+015F s cedilla
462 const PrintableSubEntry kU015F[] = { 449 const PrintableSubEntry kU015F[] = {
463 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, 450 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1},
464 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; 451 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}};
465 452
466 // U+0161 s caron 453 // U+0161 s caron
467 const PrintableSubEntry kU0161[] = { 454 const PrintableSubEntry kU0161[] = {
468 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, 455 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3},
469 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, 456 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6},
470 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, 457 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4},
471 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_1}, 458 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_1},
472 {DomCode::KEY_F, 0, 0, kAny, kAny, VKEY_F}, 459 {DomCode::KEY_F, 0, 0, kAny, kAny, VKEY_F},
473 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; 460 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}};
474 461
475 // U+016B u macron 462 // U+016B u macron
476 const PrintableSubEntry kU016B[] = { 463 const PrintableSubEntry kU016B[] = {
477 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, 464 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8},
478 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, 465 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q},
479 {DomCode::KEY_X, 0, 0, kAny, kAny, VKEY_X}}; 466 {DomCode::KEY_X, 0, 0, kAny, kAny, VKEY_X}};
480 467
481 // U+0173 u ogonek 468 // U+0173 u ogonek
482 const PrintableSubEntry kU0173[] = { 469 const PrintableSubEntry kU0173[] = {
483 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, 470 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7},
484 {DomCode::SEMICOLON, 1, 1, 0x0172, kNone, VKEY_OEM_3}, // U ogo., NoSy 471 {DomCode::SEMICOLON, 1, 1, 0x0172, 0x0162, VKEY_OEM_1}, // U ogo., T ced.
485 {DomCode::SEMICOLON, 1, 1, 0x0172, 0x0162, VKEY_OEM_1}}; // U ogo., T ced. 472 {DomCode::SEMICOLON, 1, 0, 0x0172, kAny, VKEY_OEM_3}}; // U ogonek
486 473
487 // U+017C z dot above 474 // U+017C z dot above
488 const PrintableSubEntry kU017C[] = { 475 const PrintableSubEntry kU017C[] = {
489 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, 476 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4},
490 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; 477 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}};
491 478
492 // U+017E z caron 479 // U+017E z caron
493 const PrintableSubEntry kU017E[] = { 480 const PrintableSubEntry kU017E[] = {
494 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, 481 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6},
495 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, 482 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS},
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 size_t close_index = layout_name.find(')', parentheses_index); 944 size_t close_index = layout_name.find(')', parentheses_index);
958 if (close_index == std::string::npos) 945 if (close_index == std::string::npos)
959 close_index = layout_name.size(); 946 close_index = layout_name.size();
960 *layout_variant = layout_name.substr(parentheses_index + 1, 947 *layout_variant = layout_name.substr(parentheses_index + 1,
961 close_index - parentheses_index - 1); 948 close_index - parentheses_index - 1);
962 } else if (dash_index != std::string::npos) { 949 } else if (dash_index != std::string::npos) {
963 *layout_id = layout_name.substr(0, dash_index); 950 *layout_id = layout_name.substr(0, dash_index);
964 *layout_variant = layout_name.substr(dash_index + 1); 951 *layout_variant = layout_name.substr(dash_index + 1);
965 } 952 }
966 } 953 }
954
967 } // namespace ui 955 } // namespace ui
OLDNEW
« no previous file with comments | « no previous file | ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698