| Index: ui/views/corewm/input_method_event_filter.cc
|
| diff --git a/ui/views/corewm/input_method_event_filter.cc b/ui/views/corewm/input_method_event_filter.cc
|
| index 8c99063afb09b1351bbc65e2e4d04c2a99d68f30..821ddfdc11c79e1f0cdb1cebfbd6c66cb1a8a428 100644
|
| --- a/ui/views/corewm/input_method_event_filter.cc
|
| +++ b/ui/views/corewm/input_method_event_filter.cc
|
| @@ -49,12 +49,7 @@ void InputMethodEventFilter::OnKeyEvent(ui::KeyEvent* event) {
|
| aura::Window* target = static_cast<aura::Window*>(event->target());
|
| target_dispatcher_ = target->GetRootWindow()->GetDispatcher();
|
| DCHECK(target_dispatcher_);
|
| - bool handled = false;
|
| - if (event->HasNativeEvent())
|
| - handled = input_method_->DispatchKeyEvent(event->native_event());
|
| - else
|
| - handled = input_method_->DispatchFabricatedKeyEvent(*event);
|
| - if (handled)
|
| + if (input_method_->DispatchKeyEvent(*event))
|
| event->StopPropagation();
|
| }
|
| }
|
| @@ -63,11 +58,17 @@ void InputMethodEventFilter::OnKeyEvent(ui::KeyEvent* event) {
|
| // InputMethodEventFilter, ui::InputMethodDelegate implementation:
|
|
|
| bool InputMethodEventFilter::DispatchKeyEventPostIME(
|
| - const base::NativeEvent& event) {
|
| + const ui::KeyEvent& event) {
|
| + if (!event.HasNativeEvent())
|
| + return DispatchFabricatedKeyEventPostIME(event.type(),
|
| + event.key_code(),
|
| + event.flags());
|
| +
|
| + const base::NativeEvent& native_event = event.native_event();
|
| #if defined(OS_WIN)
|
| - DCHECK(event.message != WM_CHAR);
|
| + DCHECK(native_event.message != WM_CHAR);
|
| #endif
|
| - ui::TranslatedKeyEvent aura_event(event, false /* is_char */);
|
| + ui::TranslatedKeyEvent aura_event(native_event, false /* is_char */);
|
| return target_dispatcher_->AsRootWindowHostDelegate()->OnHostKeyEvent(
|
| &aura_event);
|
| }
|
|
|