Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(737)

Unified Diff: content/renderer/render_widget.cc

Issue 2309983002: Allow selection change update before beginBatchEdit (Closed)
Patch Set: polish up a bit Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 74d2f578ca91ef885bc1aac8ba7728aed02ee742..d6e0f5b1fe0a43d0aedf6056a13ef2f54e804797 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -236,6 +236,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),
@@ -513,6 +514,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)
@@ -969,6 +972,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;
@@ -1586,6 +1590,19 @@ void RenderWidget::OnRequestTextInputStateUpdate() {
UpdateSelectionBounds();
UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME);
}
+
+void RenderWidget::OnImeBatchEdit(bool begin) {
aelias_OOO_until_Jul13 2016/09/13 02:26:51 Please add in a call to RenderWidgetCompositor::se
Changwan Ryu 2016/09/19 01:51:27 Hmm... Let me try it on another CL (which depends
aelias_OOO_until_Jul13 2016/09/19 19:29:27 Sounds good.
+ 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,

Powered by Google App Engine
This is Rietveld 408576698