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 || |