Index: ui/events/event.h |
diff --git a/ui/events/event.h b/ui/events/event.h |
index dfd867ec4626935e93aa2277ac49099243d13f8c..89d0a48cb3b1450c02577c82c435ddcf3ddc3879 100644 |
--- a/ui/events/event.h |
+++ b/ui/events/event.h |
@@ -534,10 +534,17 @@ class EVENTS_EXPORT KeyEvent : public Event { |
// letter A with acute, U+0410 Cyrillic capital letter A). |
void set_character(uint16 character) { character_ = character; } |
+ // This allows some platforms other than XKB to set its original key code. |
+ // e.g. Key event from Ozone will not have native key event. So it can use |
+ // this method to set the xksym value. |
+ void set_platform_keycode(uint32 keycode) { platform_keycode_ = keycode; } |
+ |
// Gets the character generated by this key event. It only supports Unicode |
// BMP characters. |
uint16 GetCharacter() const; |
+ // Gets the platform key code. For XKB, this is the xksym value. |
+ uint32 platform_keycode() const { return platform_keycode_; } |
KeyboardCode key_code() const { return key_code_; } |
bool is_char() const { return is_char_; } |
@@ -568,6 +575,9 @@ class EVENTS_EXPORT KeyEvent : public Event { |
void set_is_char(bool is_char) { is_char_ = is_char; } |
private: |
+ // The VKEY_? key code for the key event. This key code represent the remapped |
+ // key position. e.g. for French keyboard, when user press the key on the |
+ // right side of TAB key, |key_code_| is VKEY_A, while |code_| is "KeyQ". |
kpschoedel
2014/06/12 16:00:24
For non-Latin languages, it is the unmapped ("US")
Shu Chen
2014/06/13 02:07:15
Done. I've removed the comment here.
|
KeyboardCode key_code_; |
// String of 'code' defined in DOM KeyboardEvent (e.g. 'KeyA', 'Space') |
@@ -581,6 +591,18 @@ class EVENTS_EXPORT KeyEvent : public Event { |
// share the same type: ET_KEY_PRESSED. |
bool is_char_; |
+ // The platform related keycode value. For XKB, it's keysym value. |
+ // For now, this is used for CharacterComposer in ChromeOS. |
+ // Note: for XKB, the keysym vlaue is modifiered value. But for other |
+ // platforms, it may be unmodifiered value. |
+ uint32 platform_keycode_; |
+ |
+ // String of 'key' defined in DOM KeyboardEvent (e.g. 'a', 'â') |
+ // http://www.w3.org/TR/uievents/#keyboard-key-codes. |
+ // |
+ // This value represents the text that the key event will insert to input |
+ // field. For key with modifier key, it may have specifial text. |
+ // e.g. CTRL+A has '\x01'. |
uint16 character_; |
static bool IsRepeated(const KeyEvent& event); |