| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index 73ab00862d967b0b3e2574d512c08cb8397fe76c..15d382529e8106a0d76e9eb66de3dc94a432d75e 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -912,6 +912,23 @@ void RenderWidget::OnHandleInputEvent(const blink::WebInputEvent* input_event,
|
| return;
|
| base::AutoReset<WebInputEvent::Type> handling_event_type_resetter(
|
| &handling_event_type_, input_event->type);
|
| +#if defined(OS_ANDROID)
|
| + // On Android, when the delete key or forward delete key is pressed using IME,
|
| + // |AdapterInputConnection| generates input key events to make sure all JS
|
| + // listeners that monitor KeyUp and KeyDown events receive the proper key
|
| + // code. Since this input key event comes from IME, we need to set the
|
| + // IME event guard here to make sure it does not interfere with other IME
|
| + // events.
|
| + scoped_ptr<ImeEventGuard> ime_event_guard_maybe;
|
| + if (WebInputEvent::isKeyboardEventType(input_event->type)) {
|
| + const WebKeyboardEvent& key_event =
|
| + *static_cast<const WebKeyboardEvent*>(input_event);
|
| + if (key_event.nativeKeyCode == AKEYCODE_FORWARD_DEL ||
|
| + key_event.nativeKeyCode == AKEYCODE_DEL) {
|
| + ime_event_guard_maybe.reset(new ImeEventGuard(this));
|
| + }
|
| + }
|
| +#endif
|
|
|
| base::AutoReset<const ui::LatencyInfo*> resetter(¤t_event_latency_info_,
|
| &latency_info);
|
|
|