Index: ui/events/keycodes/dom4/keycode_converter.cc |
diff --git a/ui/events/keycodes/dom4/keycode_converter.cc b/ui/events/keycodes/dom4/keycode_converter.cc |
index d9a26a2c44461edf2c8c2deb9151f0afb755c23a..2a7fd228222afc82b1aa862c49bef6a4e26b11ce 100644 |
--- a/ui/events/keycodes/dom4/keycode_converter.cc |
+++ b/ui/events/keycodes/dom4/keycode_converter.cc |
@@ -139,6 +139,55 @@ const char* KeycodeConverter::DomCodeToCodeString(DomCode dom_code) { |
} |
// static |
+DomCodeLocation KeycodeConverter::DomCodeToLocation(DomCode dom_code) { |
+ static const struct { |
+ DomCode code; |
+ DomCodeLocation location; |
+ } kLocations[] = {{DomCode::CONTROL_LEFT, DomCodeLocation::LEFT}, |
Wez
2015/05/05 00:29:09
Will this cause a static to be initialized on firs
kpschoedel
2015/05/05 16:30:08
'static const' lets it use the data directly from
|
+ {DomCode::SHIFT_LEFT, DomCodeLocation::LEFT}, |
+ {DomCode::ALT_LEFT, DomCodeLocation::LEFT}, |
+ {DomCode::OS_LEFT, DomCodeLocation::LEFT}, |
+ {DomCode::CONTROL_RIGHT, DomCodeLocation::RIGHT}, |
+ {DomCode::SHIFT_RIGHT, DomCodeLocation::RIGHT}, |
+ {DomCode::ALT_RIGHT, DomCodeLocation::RIGHT}, |
+ {DomCode::OS_RIGHT, DomCodeLocation::RIGHT}, |
+ {DomCode::NUMPAD_DIVIDE, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_MULTIPLY, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_SUBTRACT, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_ADD, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_ENTER, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD1, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD2, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD3, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD4, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD5, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD6, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD7, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD8, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD9, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD0, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_DECIMAL, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_EQUAL, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_COMMA, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_PAREN_LEFT, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_PAREN_RIGHT, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_BACKSPACE, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_MEMORY_STORE, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_MEMORY_RECALL, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_MEMORY_CLEAR, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_MEMORY_ADD, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_MEMORY_SUBTRACT, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_SIGN_CHANGE, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_CLEAR, DomCodeLocation::NUMPAD}, |
+ {DomCode::NUMPAD_CLEAR_ENTRY, DomCodeLocation::NUMPAD}}; |
Wez
2015/05/05 00:29:09
nit: Although this is future-proof, you could reas
kpschoedel
2015/05/05 16:30:08
Yes; my reasoning was that the non-digit NUMPAD va
Wez
2015/05/05 21:23:44
Acknowledged.
|
+ for (const auto& key : kLocations) { |
+ if (key.code == dom_code) |
+ return key.location; |
+ } |
+ return DomCodeLocation::STANDARD; |
+} |
+ |
+// static |
DomKey KeycodeConverter::KeyStringToDomKey(const char* key) { |
if (!key || !*key) |
return DomKey::NONE; |