| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index 761a993bc4877eb4cf93ee44aaa248649d6f8829..071c65c359cf13bed0cb8f0b6c4659fb92dcff90 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -83,6 +83,9 @@ RenderWidget::RenderWidget(RenderThreadBase* render_thread,
|
| is_swapped_out_(false),
|
| input_method_is_active_(false),
|
| text_input_type_(ui::TEXT_INPUT_TYPE_NONE),
|
| + surrounding_(),
|
| + cursor_(0),
|
| + anchor_(0),
|
| can_compose_inline_(true),
|
| popup_type_(popup_type),
|
| pending_window_rect_count_(0),
|
| @@ -1290,23 +1293,48 @@ void RenderWidget::set_next_paint_is_repaint_ack() {
|
| void RenderWidget::UpdateInputMethod() {
|
| if (!input_method_is_active_)
|
| return;
|
| +
|
| + ViewHostMsg_ImeUpdateTextInputState_Params params;
|
|
|
| - ui::TextInputType new_type = GetTextInputType();
|
| - bool new_can_compose_inline = CanComposeInline();
|
| - WebRect new_caret_bounds;
|
| + params.text_input_type = GetTextInputType();
|
| + params.can_compose_inline = CanComposeInline();
|
|
|
| if (webwidget_)
|
| - new_caret_bounds = webwidget_->caretOrSelectionBounds();
|
| + params.caret_bounds = webwidget_->caretOrSelectionBounds();
|
| +
|
| + params.cursor = 0;
|
| + params.anchor = 0;
|
| +
|
| +
|
| + // Do not get the surrounding, if the text input type is None or Password.
|
| + if (webwidget_ &&
|
| + params.text_input_type != ui::TEXT_INPUT_TYPE_NONE &&
|
| + params.text_input_type != ui::TEXT_INPUT_TYPE_PASSWORD) {
|
| + WebKit::WebString text;
|
| + webwidget_->surroundingTextWithSelection(
|
| + text, params.cursor, params.anchor);
|
| + params.surrounding = text;
|
| + LOG(ERROR) << "\n"
|
| + << "\tsurrounding = " << params.surrounding
|
| + << "\tcursor =" << params.cursor
|
| + << "\tanchor =" << params.anchor;
|
| + }
|
|
|
| // Only sends text input type and caret bounds to the browser process if they
|
| // are changed.
|
| - if (text_input_type_ != new_type || caret_bounds_ != new_caret_bounds ||
|
| - can_compose_inline_ != new_can_compose_inline) {
|
| - text_input_type_ = new_type;
|
| - can_compose_inline_ = new_can_compose_inline;
|
| - caret_bounds_ = new_caret_bounds;
|
| + if (text_input_type_ != params.text_input_type ||
|
| + caret_bounds_ != params.caret_bounds ||
|
| + surrounding_ != params.surrounding ||
|
| + cursor_ != params.cursor || anchor_ != params.anchor ||
|
| + can_compose_inline_ != params.can_compose_inline) {
|
| + text_input_type_ = params.text_input_type;
|
| + surrounding_ = params.surrounding;
|
| + cursor_ = params.cursor;
|
| + anchor_ = params.anchor;
|
| + can_compose_inline_ = params.can_compose_inline;
|
| + caret_bounds_ = params.caret_bounds;
|
| Send(new ViewHostMsg_ImeUpdateTextInputState(
|
| - routing_id(), new_type, new_can_compose_inline, new_caret_bounds));
|
| + routing_id(), params));
|
| }
|
| }
|
|
|
|
|