| Index: ui/base/ime/mock_input_method.cc
|
| diff --git a/ui/base/ime/mock_input_method.cc b/ui/base/ime/mock_input_method.cc
|
| index 9d5c7dc564177d82e98ae97ca2b28ae16bf8df64..5087b98b61394056644db0974a9db8c1c4eb18ed 100644
|
| --- a/ui/base/ime/mock_input_method.cc
|
| +++ b/ui/base/ime/mock_input_method.cc
|
| @@ -62,8 +62,7 @@ void MockInputMethod::DispatchKeyEvent(const base::NativeEvent& native_event) {
|
| // On key release, just dispatch it.
|
| delegate_->DispatchKeyEventPostIME(native_event);
|
| } else {
|
| - const uint32 state =
|
| - EventFlagsFromXFlags(reinterpret_cast<XKeyEvent*>(native_event)->state);
|
| + const uint32 state = EventFlagsFromXFlags(native_event->xkey.state);
|
| if (consume_next_key_) {
|
| // Send the VKEY_PROCESSKEY RawKeyDown event.
|
| SendFakeProcessKeyEvent(true, state);
|
| @@ -73,7 +72,9 @@ void MockInputMethod::DispatchKeyEvent(const base::NativeEvent& native_event) {
|
| if (text_input_client_) {
|
| // then send a Char event via ui::TextInputClient.
|
| const KeyboardCode key_code = ui::KeyboardCodeFromNative(native_event);
|
| - uint16 ch = ui::GetCharacterFromXEvent(native_event);
|
| + uint16 ch = 0;
|
| + if (!(state & ui::EF_CONTROL_DOWN))
|
| + ch = ui::GetCharacterFromXEvent(native_event);
|
| if (!ch)
|
| ch = ui::GetCharacterFromKeyCode(key_code, state);
|
| if (ch)
|
|
|