summaryrefslogtreecommitdiffstats
path: root/ui/keyboard
diff options
context:
space:
mode:
authorkevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-04 17:36:50 +0000
committerkevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-04 17:36:50 +0000
commit91c7914dbab1c1b1702f138162af1e5b363dcd47 (patch)
treef6bae6ca5c2e0c96b265a1e2edd91c14bea5cd3d /ui/keyboard
parent649dd8126f846d18fb434435ce18478144e7bc1c (diff)
downloadchromium_src-91c7914dbab1c1b1702f138162af1e5b363dcd47.zip
chromium_src-91c7914dbab1c1b1702f138162af1e5b363dcd47.tar.gz
chromium_src-91c7914dbab1c1b1702f138162af1e5b363dcd47.tar.bz2
Add code field speced for DOM KeyEvent into virtual key events from the soft-keyboard.
BUG=324899 Review URL: https://codereview.chromium.org/99973002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238716 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/keyboard')
-rw-r--r--ui/keyboard/keyboard_ui_handler.cc3
-rw-r--r--ui/keyboard/keyboard_util.cc3
-rw-r--r--ui/keyboard/keyboard_util.h8
-rw-r--r--ui/keyboard/resources/elements/kb-key-codes.html231
-rw-r--r--ui/keyboard/resources/elements/kb-key-sequence.html1
-rw-r--r--ui/keyboard/resources/elements/kb-key.html12
6 files changed, 143 insertions, 115 deletions
diff --git a/ui/keyboard/keyboard_ui_handler.cc b/ui/keyboard/keyboard_ui_handler.cc
index 610d0e2..780e0be 100644
--- a/ui/keyboard/keyboard_ui_handler.cc
+++ b/ui/keyboard/keyboard_ui_handler.cc
@@ -102,12 +102,14 @@ void KeyboardUIHandler::HandleSendKeyEventMessage(
std::string type;
int char_value;
int key_code;
+ std::string key_name;
int modifiers;
if (!args->GetDictionary(0, &params) ||
!params->GetString("type", &type) ||
!params->GetInteger("charValue", &char_value) ||
!params->GetInteger("keyCode", &key_code) ||
+ !params->GetString("keyName", &key_name) ||
!params->GetInteger("modifiers", &modifiers)) {
LOG(ERROR) << "SendKeyEvent failed: bad argument";
return;
@@ -123,6 +125,7 @@ void KeyboardUIHandler::HandleSendKeyEventMessage(
if (!keyboard::SendKeyEvent(type,
char_value,
key_code,
+ key_name,
modifiers,
dispatcher)) {
LOG(ERROR) << "sendKeyEvent failed";
diff --git a/ui/keyboard/keyboard_util.cc b/ui/keyboard/keyboard_util.cc
index 42c26a0..1629a5b 100644
--- a/ui/keyboard/keyboard_util.cc
+++ b/ui/keyboard/keyboard_util.cc
@@ -110,6 +110,7 @@ bool MoveCursor(int swipe_direction,
bool SendKeyEvent(const std::string type,
int key_value,
int key_code,
+ std::string key_name,
int modifiers,
aura::WindowEventDispatcher* dispatcher) {
ui::EventType event_type = ui::ET_UNKNOWN;
@@ -153,7 +154,7 @@ bool SendKeyEvent(const std::string type,
}
}
- ui::KeyEvent event(event_type, code, modifiers, false);
+ ui::KeyEvent event(event_type, code, key_name, modifiers, false);
dispatcher->AsRootWindowHostDelegate()->OnHostKeyEvent(&event);
}
return true;
diff --git a/ui/keyboard/keyboard_util.h b/ui/keyboard/keyboard_util.h
index b5dcefd..2321273 100644
--- a/ui/keyboard/keyboard_util.h
+++ b/ui/keyboard/keyboard_util.h
@@ -53,12 +53,14 @@ KEYBOARD_EXPORT bool MoveCursor(int swipe_direction,
// Sends a fabricated key event, where |type| is the event type, |key_value|
// is the unicode value of the character, |key_code| is the legacy key code
-// value, and |modifier| indicates if any modifier keys are being virtually
-// pressed. The event is dispatched to the active TextInputClient associated
-// with |root_window|. The type may be "keydown" or "keyup".
+// value, |key_name| is the name of the key as defined in the DOM3 key event
+// specification, and |modifier| indicates if any modifier keys are being
+// virtually pressed. The event is dispatched to the active TextInputClient
+// associated with |root_window|. The type may be "keydown" or "keyup".
KEYBOARD_EXPORT bool SendKeyEvent(std::string type,
int key_value,
int key_code,
+ std::string key_name,
int modifiers,
aura::WindowEventDispatcher* dispatcher);
diff --git a/ui/keyboard/resources/elements/kb-key-codes.html b/ui/keyboard/resources/elements/kb-key-codes.html
index 4efd1ec..d99a00f 100644
--- a/ui/keyboard/resources/elements/kb-key-codes.html
+++ b/ui/keyboard/resources/elements/kb-key-codes.html
@@ -35,121 +35,127 @@
// TODO(rsadam): Correctly propagate shutdown keycode. This is currently
// ignored due to chromoting (crbug/146609)
var keyCodes = {
- '\b': {keyCode: 0x08, shiftModifier: false},
- '\t': {keyCode: 0x09, shiftModifier: false},
- '\n': {keyCode: 0x0D, shiftModifier: false},
- 'Esc': {keyCode: 0x1B, shiftModifier: false},
- ' ': {keyCode: 0x20, shiftModifier: false},
- 'Arrow-Left': {keyCode: 0x25, shiftModifier: undefined},
- 'Arrow-Up': {keyCode: 0x26, shiftModifier: undefined},
- 'Arrow-Right': {keyCode: 0x27, shiftModifier: undefined},
- 'Arrow-Down': {keyCode: 0x28, shiftModifier: undefined},
- '0': {keyCode: 0x30, shiftModifier: false},
- ')': {keyCode: 0x30, shiftModifier: true},
- '1': {keyCode: 0x31, shiftModifier: false},
- '!': {keyCode: 0x31, shiftModifier: true},
- '2': {keyCode: 0x32, shiftModifier: false},
- '@': {keyCode: 0x32, shiftModifier: true},
- '3': {keyCode: 0x33, shiftModifier: false},
- '#': {keyCode: 0x33, shiftModifier: true},
- '4': {keyCode: 0x34, shiftModifier: false},
- '$': {keyCode: 0x34, shiftModifier: true},
- '5': {keyCode: 0x35, shiftModifier: false},
- '%': {keyCode: 0x35, shiftModifier: true},
- '6': {keyCode: 0x36, shiftModifier: false},
- '^': {keyCode: 0x36, shiftModifier: true},
- '7': {keyCode: 0x37, shiftModifier: false},
- '&': {keyCode: 0x37, shiftModifier: true},
- '8': {keyCode: 0x38, shiftModifier: false},
- '*': {keyCode: 0x38, shiftModifier: true},
- '9': {keyCode: 0x39, shiftModifier: false},
- '(': {keyCode: 0x39, shiftModifier: true},
- 'a': {keyCode: 0x41, shiftModifier: false},
- 'A': {keyCode: 0x41, shiftModifier: true},
- 'b': {keyCode: 0x42, shiftModifier: false},
- 'B': {keyCode: 0x42, shiftModifier: true},
- 'c': {keyCode: 0x43, shiftModifier: false},
- 'C': {keyCode: 0x43, shiftModifier: true},
- 'd': {keyCode: 0x44, shiftModifier: false},
- 'D': {keyCode: 0x44, shiftModifier: true},
- 'e': {keyCode: 0x45, shiftModifier: false},
- 'E': {keyCode: 0x45, shiftModifier: true},
- 'f': {keyCode: 0x46, shiftModifier: false},
- 'F': {keyCode: 0x46, shiftModifier: true},
- 'g': {keyCode: 0x47, shiftModifier: false},
- 'G': {keyCode: 0x47, shiftModifier: true},
- 'h': {keyCode: 0x48, shiftModifier: false},
- 'H': {keyCode: 0x48, shiftModifier: true},
- 'i': {keyCode: 0x49, shiftModifier: false},
- 'I': {keyCode: 0x49, shiftModifier: true},
- 'j': {keyCode: 0x4A, shiftModifier: false},
- 'J': {keyCode: 0x4A, shiftModifier: true},
- 'k': {keyCode: 0x4B, shiftModifier: false},
- 'K': {keyCode: 0x4B, shiftModifier: true},
- 'l': {keyCode: 0x4C, shiftModifier: false},
- 'L': {keyCode: 0x4C, shiftModifier: true},
- 'm': {keyCode: 0x4D, shiftModifier: false},
- 'M': {keyCode: 0x4D, shiftModifier: true},
- 'n': {keyCode: 0x4E, shiftModifier: false},
- 'N': {keyCode: 0x4E, shiftModifier: true},
- 'o': {keyCode: 0x4F, shiftModifier: false},
- 'O': {keyCode: 0x4F, shiftModifier: true},
- 'p': {keyCode: 0x50, shiftModifier: false},
- 'P': {keyCode: 0x50, shiftModifier: true},
- 'q': {keyCode: 0x51, shiftModifier: false},
- 'Q': {keyCode: 0x51, shiftModifier: true},
- 'r': {keyCode: 0x52, shiftModifier: false},
- 'R': {keyCode: 0x52, shiftModifier: true},
- 's': {keyCode: 0x53, shiftModifier: false},
- 'S': {keyCode: 0x53, shiftModifier: true},
- 't': {keyCode: 0x54, shiftModifier: false},
- 'T': {keyCode: 0x54, shiftModifier: true},
- 'u': {keyCode: 0x55, shiftModifier: false},
- 'U': {keyCode: 0x55, shiftModifier: true},
- 'v': {keyCode: 0x56, shiftModifier: false},
- 'V': {keyCode: 0x56, shiftModifier: true},
- 'w': {keyCode: 0x57, shiftModifier: false},
- 'W': {keyCode: 0x57, shiftModifier: true},
- 'x': {keyCode: 0x58, shiftModifier: false},
- 'X': {keyCode: 0x58, shiftModifier: true},
- 'y': {keyCode: 0x59, shiftModifier: false},
- 'Y': {keyCode: 0x59, shiftModifier: true},
- 'z': {keyCode: 0x5A, shiftModifier: false},
- 'Z': {keyCode: 0x5A, shiftModifier: true},
+ '\b': {keyCode: 0x08, keyName: 'Backspace', shiftModifier: false},
+ '\t': {keyCode: 0x09, keyName: 'Tab', shiftModifier: false},
+ '\n': {keyCode: 0x0D, keyName: 'Enter', shiftModifier: false},
+ 'Esc': {keyCode: 0x1B, keyName: 'Escape', shiftModifier: false},
+ ' ': {keyCode: 0x20, keyName: 'Space', shiftModifier: false},
+ 'Arrow-Left': {keyCode: 0x25, keyName: 'ArrowLeft',
+ shiftModifier: undefined},
+ 'Arrow-Up': {keyCode: 0x26, keyName: 'ArrowUp', shiftModifier: undefined},
+ 'Arrow-Right': {keyCode: 0x27, keyName: 'ArrowRight',
+ shiftModifier: undefined},
+ 'Arrow-Down': {keyCode: 0x28, keyName: 'ArrowDown',
+ shiftModifier: undefined},
+ '0': {keyCode: 0x30, keyName: 'Digit0', shiftModifier: false},
+ ')': {keyCode: 0x30, keyName: 'Digit0', shiftModifier: true},
+ '1': {keyCode: 0x31, keyName: 'Digit1', shiftModifier: false},
+ '!': {keyCode: 0x31, keyName: 'Digit1', shiftModifier: true},
+ '2': {keyCode: 0x32, keyName: 'Digit2', shiftModifier: false},
+ '@': {keyCode: 0x32, keyName: 'Digit2', shiftModifier: true},
+ '3': {keyCode: 0x33, keyName: 'Digit3', shiftModifier: false},
+ '#': {keyCode: 0x33, keyName: 'Digit3', shiftModifier: true},
+ '4': {keyCode: 0x34, keyName: 'Digit4', shiftModifier: false},
+ '$': {keyCode: 0x34, keyName: 'Digit4', shiftModifier: true},
+ '5': {keyCode: 0x35, keyName: 'Digit5', shiftModifier: false},
+ '%': {keyCode: 0x35, keyName: 'Digit5', shiftModifier: true},
+ '6': {keyCode: 0x36, keyName: 'Digit6', shiftModifier: false},
+ '^': {keyCode: 0x36, keyName: 'Digit6', shiftModifier: true},
+ '7': {keyCode: 0x37, keyName: 'Digit7', shiftModifier: false},
+ '&': {keyCode: 0x37, keyName: 'Digit7', shiftModifier: true},
+ '8': {keyCode: 0x38, keyName: 'Digit8', shiftModifier: false},
+ '*': {keyCode: 0x38, keyName: 'Digit8', shiftModifier: true},
+ '9': {keyCode: 0x39, keyName: 'Digit9', shiftModifier: false},
+ '(': {keyCode: 0x39, keyName: 'Digit9', shiftModifier: true},
+ 'a': {keyCode: 0x41, keyName: 'KeyA', shiftModifier: false},
+ 'A': {keyCode: 0x41, keyName: 'KeyA', shiftModifier: true},
+ 'b': {keyCode: 0x42, keyName: 'KeyB', shiftModifier: false},
+ 'B': {keyCode: 0x42, keyName: 'KeyB', shiftModifier: true},
+ 'c': {keyCode: 0x43, keyName: 'KeyC', shiftModifier: false},
+ 'C': {keyCode: 0x43, keyName: 'KeyC', shiftModifier: true},
+ 'd': {keyCode: 0x44, keyName: 'KeyD', shiftModifier: false},
+ 'D': {keyCode: 0x44, keyName: 'KeyD', shiftModifier: true},
+ 'e': {keyCode: 0x45, keyName: 'KeyE', shiftModifier: false},
+ 'E': {keyCode: 0x45, keyName: 'KeyE', shiftModifier: true},
+ 'f': {keyCode: 0x46, keyName: 'KeyF', shiftModifier: false},
+ 'F': {keyCode: 0x46, keyName: 'KeyF', shiftModifier: true},
+ 'g': {keyCode: 0x47, keyName: 'KeyG', shiftModifier: false},
+ 'G': {keyCode: 0x47, keyName: 'KeyG', shiftModifier: true},
+ 'h': {keyCode: 0x48, keyName: 'KeyH', shiftModifier: false},
+ 'H': {keyCode: 0x48, keyName: 'KeyH', shiftModifier: true},
+ 'i': {keyCode: 0x49, keyName: 'KeyI', shiftModifier: false},
+ 'I': {keyCode: 0x49, keyName: 'KeyI', shiftModifier: true},
+ 'j': {keyCode: 0x4A, keyName: 'KeyJ', shiftModifier: false},
+ 'J': {keyCode: 0x4A, keyName: 'KeyJ', shiftModifier: true},
+ 'k': {keyCode: 0x4B, keyName: 'KeyK', shiftModifier: false},
+ 'K': {keyCode: 0x4B, keyName: 'KeyK', shiftModifier: true},
+ 'l': {keyCode: 0x4C, keyName: 'KeyL', shiftModifier: false},
+ 'L': {keyCode: 0x4C, keyName: 'KeyL', shiftModifier: true},
+ 'm': {keyCode: 0x4D, keyName: 'KeyM', shiftModifier: false},
+ 'M': {keyCode: 0x4D, keyName: 'KeyM', shiftModifier: true},
+ 'n': {keyCode: 0x4E, keyName: 'KeyN', shiftModifier: false},
+ 'N': {keyCode: 0x4E, keyName: 'KeyN', shiftModifier: true},
+ 'o': {keyCode: 0x4F, keyName: 'KeyO', shiftModifier: false},
+ 'O': {keyCode: 0x4F, keyName: 'KeyO', shiftModifier: true},
+ 'p': {keyCode: 0x50, keyName: 'KeyP', shiftModifier: false},
+ 'P': {keyCode: 0x50, keyName: 'KeyP', shiftModifier: true},
+ 'q': {keyCode: 0x51, keyName: 'KeyQ', shiftModifier: false},
+ 'Q': {keyCode: 0x51, keyName: 'KeyQ', shiftModifier: true},
+ 'r': {keyCode: 0x52, keyName: 'KeyR', shiftModifier: false},
+ 'R': {keyCode: 0x52, keyName: 'KeyR', shiftModifier: true},
+ 's': {keyCode: 0x53, keyName: 'KeyS', shiftModifier: false},
+ 'S': {keyCode: 0x53, keyName: 'KeyS', shiftModifier: true},
+ 't': {keyCode: 0x54, keyName: 'KeyT', shiftModifier: false},
+ 'T': {keyCode: 0x54, keyName: 'KeyT', shiftModifier: true},
+ 'u': {keyCode: 0x55, keyName: 'KeyU', shiftModifier: false},
+ 'U': {keyCode: 0x55, keyName: 'KeyU', shiftModifier: true},
+ 'v': {keyCode: 0x56, keyName: 'KeyV', shiftModifier: false},
+ 'V': {keyCode: 0x56, keyName: 'KeyV', shiftModifier: true},
+ 'w': {keyCode: 0x57, keyName: 'KeyW', shiftModifier: false},
+ 'W': {keyCode: 0x57, keyName: 'KeyW', shiftModifier: true},
+ 'x': {keyCode: 0x58, keyName: 'KeyX', shiftModifier: false},
+ 'X': {keyCode: 0x58, keyName: 'KeyX', shiftModifier: true},
+ 'y': {keyCode: 0x59, keyName: 'KeyY', shiftModifier: false},
+ 'Y': {keyCode: 0x59, keyName: 'KeyY', shiftModifier: true},
+ 'z': {keyCode: 0x5A, keyName: 'KeyZ', shiftModifier: false},
+ 'Z': {keyCode: 0x5A, keyName: 'KeyZ', shiftModifier: true},
'Fullscreen': {keyCode: 0x7A, shiftModifier: false},
'Shutdown': {keyCode: 0x98, shiftModifier: false},
'Back': {keyCode: 0xA6, shiftModifier: false},
'Forward': {keyCode: 0xA7, shiftModifier: false},
'Reload': {keyCode: 0xA8, shiftModifier: false},
'Search': {keyCode: 0xAA, shiftModifier: false},
- 'Mute': {keyCode: 0xAD, shiftModifier: false},
- 'Volume-Down': {keyCode: 0xAE, shiftModifier: false},
- 'Volume-Up': {keyCode: 0xAF, shiftModifier: false},
+ 'Mute': {keyCode: 0xAD, keyName: 'VolumeMute', shiftModifier: false},
+ 'Volume-Down': {keyCode: 0xAE, keyName: 'VolumeDown',
+ shiftModifier: false},
+ 'Volume-Up': {keyCode: 0xAF, keyName: 'VolumeUp', shiftModifier: false},
'Change-Window': {keyCode: 0xB6, shiftModifier: false},
- ';': {keyCode: 0xBA, shiftModifier: false},
- ':': {keyCode: 0xBA, shiftModifier: true},
- '=': {keyCode: 0xBB, shiftModifier: false},
- '+': {keyCode: 0xBB, shiftModifier: true},
- ',': {keyCode: 0xBC, shiftModifier: false},
- '<': {keyCode: 0xBC, shiftModifier: true},
- '-': {keyCode: 0xBD, shiftModifier: false},
- '_': {keyCode: 0xBD, shiftModifier: true},
- '.': {keyCode: 0xBE, shiftModifier: false},
- '>': {keyCode: 0xBE, shiftModifier: true},
- '/': {keyCode: 0xBF, shiftModifier: false},
- '?': {keyCode: 0xBF, shiftModifier: true},
- '`': {keyCode: 0xC0, shiftModifier: false},
- '~': {keyCode: 0xC0, shiftModifier: true},
- 'Brightness-Down': {keyCode: 0xD8, shiftModifier: false},
- 'Brightness-Up': {keyCode: 0xD9, shiftModifier: false},
- '[': {keyCode: 0xDB, shiftModifier: false},
- '{': {keyCode: 0xDB, shiftModifier: true},
- '\\': {keyCode: 0xDC, shiftModifier: false},
- '|': {keyCode: 0xDC, shiftModifier: true},
- ']': {keyCode: 0xDD, shiftModifier: false},
- '}': {keyCode: 0xDD, shiftModifier: true},
- '\'': {keyCode: 0xDE, shiftModifier: false},
- '"': {keyCode: 0xDE, shiftModifier: true},
+ ';': {keyCode: 0xBA, keyName: 'Semicolon', shiftModifier: false},
+ ':': {keyCode: 0xBA, keyName: 'Semicolon',shiftModifier: true},
+ '=': {keyCode: 0xBB, keyName: 'Equal', shiftModifier: false},
+ '+': {keyCode: 0xBB, keyName: 'Equal', shiftModifier: true},
+ ',': {keyCode: 0xBC, keyName: 'Comma', shiftModifier: false},
+ '<': {keyCode: 0xBC, keyName: 'Comma', shiftModifier: true},
+ '-': {keyCode: 0xBD, keyName: 'Minus', shiftModifier: false},
+ '_': {keyCode: 0xBD, keyName: 'Minus', shiftModifier: true},
+ '.': {keyCode: 0xBE, keyName: 'Period', shiftModifier: false},
+ '>': {keyCode: 0xBE, keyName: 'Period', shiftModifier: true},
+ '/': {keyCode: 0xBF, keyName: 'Slash', shiftModifier: false},
+ '?': {keyCode: 0xBF, keyName: 'Slash', shiftModifier: true},
+ '`': {keyCode: 0xC0, keyName: 'Backquote', shiftModifier: false},
+ '~': {keyCode: 0xC0, keyName: 'Backquote', shiftModifier: true},
+ 'Brightness-Down': {keyCode: 0xD8, keyName: 'BrightnessDown',
+ shiftModifier: false},
+ 'Brightness-Up': {keyCode: 0xD9, keyName: 'BrightnessUp',
+ shiftModifier: false},
+ '[': {keyCode: 0xDB, keyName: 'BracketLeft', shiftModifier: false},
+ '{': {keyCode: 0xDB, keyName: 'BracketLeft', shiftModifier: true},
+ '\\': {keyCode: 0xDC, keyName: 'Backslash', shiftModifier: false},
+ '|': {keyCode: 0xDC, keyName: 'Backslash', shiftModifier: true},
+ ']': {keyCode: 0xDD, keyName: 'BracketRight', shiftModifier: false},
+ '}': {keyCode: 0xDD, keyName: 'BracketRight', shiftModifier: true},
+ '\'': {keyCode: 0xDE, keyName: 'Quote', shiftModifier: false},
+ '"': {keyCode: 0xDE, keyName: 'Quote', shiftModifier: true},
};
Polymer('kb-key-codes', {
@@ -163,6 +169,7 @@
if (entry) {
return {
keyCode: entry.keyCode,
+ keyName: entry.keyName || 'Unidentified',
shiftModifier: entry.shiftModifier
};
}
@@ -171,6 +178,7 @@
// Special case of accented characters.
return {
keyCode: 0,
+ keyName: 'Unidentified',
shiftModifier: false
};
},
@@ -187,16 +195,18 @@
createVirtualKeyEvent: function(detail, type) {
var char = detail.char;
var keyCode = detail.keyCode;
+ var keyName = detail.keyName;
// The shift modifier is handled specially. Some charactares like '+'
// {keyCode: 0xBB, shiftModifier: true}, are available on non-upper
// keysets, and so we rely on caching the correct shiftModifier. If
// the cached value of the shiftModifier is undefined, we defer to
// the shiftModifier in the detail.
var shiftModifier = detail.shiftModifier;
- if (keyCode == undefined) {
+ if (keyCode == undefined || keyName == undefined) {
var state = this.GetKeyCodeAndModifiers(char);
if (state) {
- keyCode = state.keyCode;
+ keyCode = keyCode || state.keyCode;
+ keyName = keyName || state.keyName;
shiftModifier = (state.shiftModifier == undefined) ?
shiftModifier : state.shiftModifier;
} else {
@@ -213,6 +223,7 @@
type: type,
charValue: char.charCodeAt(0),
keyCode: keyCode,
+ keyName: keyName,
modifiers: modifiers
};
},
diff --git a/ui/keyboard/resources/elements/kb-key-sequence.html b/ui/keyboard/resources/elements/kb-key-sequence.html
index f8bc2d9..0157f93 100644
--- a/ui/keyboard/resources/elements/kb-key-sequence.html
+++ b/ui/keyboard/resources/elements/kb-key-sequence.html
@@ -58,6 +58,7 @@
var state = getKeyCodeAndModifiers(keyCodeIndex);
if (state) {
key.keyCode = state.keyCode;
+ key.keyName = state.keyName;
key.shiftModifier = state.shiftModifier;
}
replacement.appendChild(key);
diff --git a/ui/keyboard/resources/elements/kb-key.html b/ui/keyboard/resources/elements/kb-key.html
index cd7522c..cd4cef2 100644
--- a/ui/keyboard/resources/elements/kb-key.html
+++ b/ui/keyboard/resources/elements/kb-key.html
@@ -5,7 +5,7 @@
-->
<polymer-element name="kb-key" extends="kb-key-base"
- attributes="image imageSize keyCode shiftModifier weight">
+ attributes="image imageSize keyCode keyName shiftModifier weight">
<template>
<style>
:host {
@@ -88,6 +88,15 @@
* @type {number|undefined}
*/
keyCode: undefined,
+
+ /**
+ * Name of the key as defined in the DOM3 specification for key events.
+ * Like the keyCode, the keyName is independent of the state of the
+ * modifier keys.
+ * @type {string|undefined}
+ */
+ keyName: undefined,
+
/**
* Whether the shift key is pressed when producing the key value.
* @type {boolean}
@@ -130,6 +139,7 @@
populateDetails: function(caller) {
var details = this.super([caller]);
details.keyCode = this.keyCode;
+ details.keyName = this.keyName;
details.shiftModifier = this.shiftModifier;
return details;
},