| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index 05adb9fcf7805f6e2521bd2b3c64ef2292888048..2e3e94eef7e0b2d01746a56bcc8770c19cb94881 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -234,6 +234,7 @@ RenderWidget::RenderWidget(CompositorDependencies* compositor_deps,
|
| is_fullscreen_granted_(false),
|
| display_mode_(blink::WebDisplayModeUndefined),
|
| ime_event_guard_(nullptr),
|
| + ime_in_batch_edit_(false),
|
| closing_(false),
|
| host_closing_(false),
|
| is_swapped_out_(swapped_out),
|
| @@ -516,6 +517,8 @@ bool RenderWidget::OnMessageReceived(const IPC::Message& message) {
|
| IPC_MESSAGE_HANDLER(InputMsg_ImeEventAck, OnImeEventAck)
|
| IPC_MESSAGE_HANDLER(InputMsg_RequestTextInputStateUpdate,
|
| OnRequestTextInputStateUpdate)
|
| + IPC_MESSAGE_HANDLER(InputMsg_ImeBatchEdit,
|
| + OnImeBatchEdit)
|
| IPC_MESSAGE_HANDLER(ViewMsg_ShowImeIfNeeded, OnShowImeIfNeeded)
|
| #endif
|
| IPC_MESSAGE_HANDLER(ViewMsg_HandleCompositorProto, OnHandleCompositorProto)
|
| @@ -981,6 +984,7 @@ void RenderWidget::UpdateTextInputState(ShowIme show_ime,
|
| #if defined(OS_ANDROID)
|
| params.is_non_ime_change =
|
| (change_source == ChangeSource::FROM_NON_IME) || text_field_is_dirty_;
|
| + params.batch_edit = ime_in_batch_edit_;
|
| if (params.is_non_ime_change)
|
| OnImeEventSentForAck(new_info);
|
| text_field_is_dirty_ = false;
|
| @@ -1615,6 +1619,19 @@ void RenderWidget::OnRequestTextInputStateUpdate() {
|
| UpdateSelectionBounds();
|
| UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME);
|
| }
|
| +
|
| +void RenderWidget::OnImeBatchEdit(bool begin) {
|
| + if (begin) {
|
| + ime_in_batch_edit_ = true;
|
| + return;
|
| + }
|
| + if (!ime_in_batch_edit_)
|
| + return;
|
| + ime_in_batch_edit_ = false;
|
| + DCHECK(!ime_event_guard_);
|
| + UpdateSelectionBounds();
|
| + UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME);
|
| +}
|
| #endif
|
|
|
| void RenderWidget::OnRequestCompositionUpdate(bool immediate_request,
|
|
|