| Index: ui/events/event.h
|
| diff --git a/ui/events/event.h b/ui/events/event.h
|
| index 7257f625f40299b32510fb80850b4259db5f00c0..b950125cf85c5b7c7fdfea68b7f532a6c06974da 100644
|
| --- a/ui/events/event.h
|
| +++ b/ui/events/event.h
|
| @@ -587,7 +587,7 @@ class EVENTS_EXPORT ExtendedKeyEventData {
|
| // -- character_ is a UTF-16 character value.
|
| // -- key_code_ is conflated with character_ by some code, because both
|
| // arrive in the wParam field of a Windows event.
|
| -// -- code_ is "".
|
| +// -- code_ is the empty string.
|
| //
|
| class EVENTS_EXPORT KeyEvent : public Event {
|
| public:
|
| @@ -636,9 +636,24 @@ class EVENTS_EXPORT KeyEvent : public Event {
|
| // BMP characters.
|
| base::char16 GetCharacter() const;
|
|
|
| + // If this is a keystroke event with key_code_ VKEY_RETURN, returns '\r';
|
| + // otherwise returns the same as GetCharacter().
|
| + base::char16 GetUnmodifiedText() const;
|
| +
|
| + // If the Control key is down in the event, returns a layout-independent
|
| + // character (corresponding to US layout); otherwise returns the same
|
| + // as GetUnmodifiedText().
|
| + base::char16 GetText() const;
|
| +
|
| // Gets the platform key code. For XKB, this is the xksym value.
|
| void set_platform_keycode(uint32 keycode) { platform_keycode_ = keycode; }
|
| uint32 platform_keycode() const { return platform_keycode_; }
|
| +
|
| + // Gets the associated (Windows-based) KeyboardCode for this key event.
|
| + // Historically, this has also been used to obtain the character associated
|
| + // with a character event, because both use the Window message 'wParam' field.
|
| + // This should be avoided; if necessary for backwards compatibility, use
|
| + // GetConflatedWindowsKeyCode().
|
| KeyboardCode key_code() const { return key_code_; }
|
|
|
| // True if this is a character event, false if this is a keystroke event.
|
| @@ -648,6 +663,17 @@ class EVENTS_EXPORT KeyEvent : public Event {
|
| // events in an EventRewriter.
|
| void set_key_code(KeyboardCode key_code) { key_code_ = key_code; }
|
|
|
| + // Returns the same value as key_code(), except that located codes are
|
| + // returned in place of non-located ones (e.g. VKEY_LSHIFT or VKEY_RSHIFT
|
| + // instead of VKEY_SHIFT). This is a hybrid of semantic and physical
|
| + // for legacy DOM reasons.
|
| + KeyboardCode GetLocatedWindowsKeyboardCode() const;
|
| +
|
| + // For a keystroke event, returns the same value as key_code().
|
| + // For a character event, returns the same value as GetCharacter().
|
| + // This exists for backwards compatibility with Windows key events.
|
| + uint16 GetConflatedWindowsKeyCode() const;
|
| +
|
| // Returns true for [Alt]+<num-pad digit> Unicode alt key codes used by Win.
|
| // TODO(msw): Additional work may be needed for analogues on other platforms.
|
| bool IsUnicodeKeyCode() const;
|
| @@ -671,6 +697,9 @@ class EVENTS_EXPORT KeyEvent : public Event {
|
| void set_is_char(bool is_char) { is_char_ = is_char; }
|
|
|
| private:
|
| + // True if the key press originated from a 'right' key (VKEY_RSHIFT, etc.).
|
| + bool IsRightSideKey() const;
|
| +
|
| KeyboardCode key_code_;
|
|
|
| // String of 'code' defined in DOM KeyboardEvent (e.g. 'KeyA', 'Space')
|
| @@ -693,7 +722,7 @@ class EVENTS_EXPORT KeyEvent : public Event {
|
| // 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'.
|
| - base::char16 character_;
|
| + mutable base::char16 character_;
|
|
|
| // Parts of our event handling require raw native events (see both the
|
| // windows and linux implementations of web_input_event in content/). Because
|
|
|