| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index 18f85560cfe41ad717ded99e98f96865cc1d3b4f..1d9b2daf8d1970fb3af2f37f76e87e06bb571623 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -355,7 +355,7 @@ RenderWidget::RenderWidget(WebKit::WebPopupType popup_type,
|
| device_scale_factor_(screen_info_.deviceScaleFactor),
|
| is_threaded_compositing_enabled_(false),
|
| next_output_surface_id_(0),
|
| -#if defined(OS_ANDROID)
|
| +#if defined(OS_ANDROID) || defined(USE_AURA)
|
| outstanding_ime_acks_(0),
|
| #endif
|
| popup_origin_scale_for_emulation_(0.f),
|
| @@ -597,6 +597,8 @@ bool RenderWidget::OnMessageReceived(const IPC::Message& message) {
|
| IPC_MESSAGE_HANDLER(ViewMsg_UpdateScreenRects, OnUpdateScreenRects)
|
| #if defined(OS_ANDROID)
|
| IPC_MESSAGE_HANDLER(ViewMsg_ShowImeIfNeeded, OnShowImeIfNeeded)
|
| +#endif
|
| +#if defined(OS_ANDROID) || defined(USE_AURA)
|
| IPC_MESSAGE_HANDLER(ViewMsg_ImeEventAck, OnImeEventAck)
|
| #endif
|
| IPC_MESSAGE_HANDLER(ViewMsg_Snapshot, OnSnapshot)
|
| @@ -1135,12 +1137,16 @@ void RenderWidget::OnHandleInputEvent(const WebKit::WebInputEvent* input_event,
|
| Send(response);
|
| }
|
|
|
| -#if defined(OS_ANDROID)
|
| +#if defined(OS_ANDROID) || defined(USE_AURA)
|
| // Allow the IME to be shown when the focus changes as a consequence
|
| // of a processed touch end event.
|
| if (input_event->type == WebInputEvent::TouchEnd && processed)
|
| UpdateTextInputState(true, true);
|
| #endif
|
| +#if defined(USE_AURA)
|
| + if (input_event->type == WebInputEvent::MouseUp && processed)
|
| + UpdateTextInputState(true, true);
|
| +#endif
|
|
|
| handling_input_event_ = false;
|
|
|
| @@ -1815,7 +1821,7 @@ void RenderWidget::willBeginCompositorFrame() {
|
| // enable GPU acceleration so they need to be called before any painting
|
| // is done.
|
| UpdateTextInputType();
|
| -#if defined(OS_ANDROID)
|
| +#if defined(OS_ANDROID) || defined(USE_AURA)
|
| UpdateTextInputState(false, true);
|
| #endif
|
| UpdateSelectionBounds();
|
| @@ -2242,7 +2248,9 @@ void RenderWidget::OnUpdateScreenRects(const gfx::Rect& view_screen_rect,
|
| void RenderWidget::OnShowImeIfNeeded() {
|
| UpdateTextInputState(true, true);
|
| }
|
| +#endif
|
|
|
| +#if defined(OS_ANDROID) || defined(USE_AURA)
|
| void RenderWidget::IncrementOutstandingImeEventAcks() {
|
| ++outstanding_ime_acks_;
|
| }
|
| @@ -2254,7 +2262,7 @@ void RenderWidget::OnImeEventAck() {
|
| #endif
|
|
|
| bool RenderWidget::ShouldHandleImeEvent() {
|
| -#if defined(OS_ANDROID)
|
| +#if defined(OS_ANDROID) || defined(USE_AURA)
|
| return !!webwidget_ && outstanding_ime_acks_ == 0;
|
| #else
|
| return !!webwidget_;
|
| @@ -2372,7 +2380,7 @@ void RenderWidget::FinishHandlingImeEvent() {
|
| // are ignored. These must explicitly be updated once finished handling the
|
| // ime event.
|
| UpdateSelectionBounds();
|
| -#if defined(OS_ANDROID)
|
| +#if defined(OS_ANDROID) || defined(USE_AURA)
|
| UpdateTextInputState(false, false);
|
| #endif
|
| }
|
| @@ -2413,7 +2421,7 @@ void RenderWidget::UpdateTextInputType() {
|
| }
|
| }
|
|
|
| -#if defined(OS_ANDROID)
|
| +#if defined(OS_ANDROID) || defined(USE_AURA)
|
| void RenderWidget::UpdateTextInputState(bool show_ime_if_needed,
|
| bool send_ime_ack) {
|
| if (handling_ime_event_)
|
| @@ -2428,6 +2436,7 @@ void RenderWidget::UpdateTextInputState(bool show_ime_if_needed,
|
| if (webwidget_)
|
| new_info = webwidget_->textInputInfo();
|
|
|
| + const ui::TextInputMode new_mode = ConvertInputMode(new_info.inputMode);
|
| bool new_can_compose_inline = CanComposeInline();
|
|
|
| // Only sends text input params if they are changed or if the ime should be
|
| @@ -2437,6 +2446,7 @@ void RenderWidget::UpdateTextInputState(bool show_ime_if_needed,
|
| || can_compose_inline_ != new_can_compose_inline)) {
|
| ViewHostMsg_TextInputState_Params p;
|
| p.type = new_type;
|
| + p.mode = new_mode;
|
| p.value = new_info.value.utf8();
|
| p.selection_start = new_info.selectionStart;
|
| p.selection_end = new_info.selectionEnd;
|
| @@ -2622,7 +2632,7 @@ void RenderWidget::resetInputMethod() {
|
| void RenderWidget::didHandleGestureEvent(
|
| const WebGestureEvent& event,
|
| bool event_cancelled) {
|
| -#if defined(OS_ANDROID)
|
| +#if defined(OS_ANDROID) || defined(USE_AURA)
|
| if (event_cancelled)
|
| return;
|
| if (event.type == WebInputEvent::GestureTap ||
|
|
|