Index: ui/events/event.cc |
diff --git a/ui/events/event.cc b/ui/events/event.cc |
index c26b9c97b7748719a0cff3dee816b32912524dff..a764f507481327ba9865f925722115a5ce178643 100644 |
--- a/ui/events/event.cc |
+++ b/ui/events/event.cc |
@@ -680,7 +680,7 @@ KeyEvent::KeyEvent(EventType type, |
int flags) |
: Event(type, EventTimeForNow(), flags), |
key_code_(key_code), |
- code_(DomCode::NONE), |
+ code_(KeyboardCodeToDomCode(key_code)), |
is_char_(false), |
platform_keycode_(0), |
key_(DomKey::NONE), |
@@ -773,29 +773,34 @@ void KeyEvent::ApplyLayout() const { |
// Native Windows character events always have is_char_ == true, |
// so this is a synthetic or native keystroke event. |
// Therefore, perform only the fallback action. |
- GetMeaningFromKeyCode(key_code_, flags(), &key_, &character_); |
+ KeyboardCode dummy_key_code; |
+ DomCodeToMeaning(code_, flags(), &key_, &character_, &dummy_key_code); |
#elif defined(USE_X11) |
// When a control key is held, prefer ASCII characters to non ASCII |
- // characters in order to use it for shortcut keys. GetCharacterFromKeyCode |
+ // characters in order to use it for shortcut keys. DomCodeToMeaning |
// returns 'a' for VKEY_A even if the key is actually bound to 'à' in X11. |
// GetCharacterFromXEvent returns 'à' in that case. |
- character_ = (IsControlDown() || !native_event()) ? |
- GetCharacterFromKeyCode(key_code_, flags()) : |
- GetCharacterFromXEvent(native_event()); |
- // TODO(kpschoedel): set key_ field for X11. |
+ if (IsControlDown() || !native_event()) { |
+ KeyboardCode dummy_key_code; |
+ DomCodeToMeaning(code_, flags(), &key_, &character_, &dummy_key_code); |
+ } |
+ else { |
+ character_ = GetCharacterFromXEvent(native_event()); |
+ // TODO(kpschoedel): set key_ field for X11. |
+ } |
#elif defined(USE_OZONE) |
KeyboardCode key_code; |
if (!KeyboardLayoutEngineManager::GetKeyboardLayoutEngine()->Lookup( |
code_, flags(), &key_, &character_, &key_code, &platform_keycode_)) { |
- GetMeaningFromKeyCode(key_code_, flags(), &key_, &character_); |
+ DomCodeToMeaning(code_, flags(), &key_, &character_, &key_code); |
} |
#else |
if (native_event()) { |
DCHECK(EventTypeFromNative(native_event()) == ET_KEY_PRESSED || |
EventTypeFromNative(native_event()) == ET_KEY_RELEASED); |
} |
- // TODO(kpschoedel): revise to use DOM code_ instead of Windows key_code_ |
- GetMeaningFromKeyCode(key_code_, flags(), &key_, &character_); |
+ KeyboardCode dummy_key_code; |
+ DomCodeToMeaning(code_, flags(), &key_, &character_, &dummy_key_code); |
#endif |
} |
@@ -815,9 +820,12 @@ base::char16 KeyEvent::GetCharacter() const { |
base::char16 KeyEvent::GetText() const { |
if ((flags() & EF_CONTROL_DOWN) != 0) { |
- // TODO(kpschoedel): revise to use DOM code_ instead of Windows key_code_ |
- return GetControlCharacterForKeycode(key_code_, |
- (flags() & EF_SHIFT_DOWN) != 0); |
+ base::char16 character; |
+ ui::DomKey key; |
+ ui::KeyboardCode key_code; |
+ if (DomCodeToControlCharacter(code_, flags(), &key, &character, |
+ &key_code)) |
+ return character; |
} |
return GetUnmodifiedText(); |
} |