Index: content/renderer/render_widget.cc |
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
index 9ceb7970c31e94dd094ee3417c2452f0205ae751..c6ce1bd3ebfc238a245198621c95dca3bdc65573 100644 |
--- a/content/renderer/render_widget.cc |
+++ b/content/renderer/render_widget.cc |
@@ -587,6 +587,12 @@ bool RenderWidget::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(InputMsg_ImeCommitText, OnImeCommitText) |
IPC_MESSAGE_HANDLER(InputMsg_ImeFinishComposingText, |
OnImeFinishComposingText) |
+ IPC_MESSAGE_HANDLER(InputMsg_ImeApplySuggestionReplacement, |
+ OnImeApplySuggestionReplacement) |
+ IPC_MESSAGE_HANDLER(InputMsg_ImeDeleteSuggestionHighlight, |
+ OnImeDeleteSuggestionHighlight) |
+ IPC_MESSAGE_HANDLER(InputMsg_ImeCloseSuggestionMenu, |
+ OnImeCloseSuggestionMenu) |
IPC_MESSAGE_HANDLER(InputMsg_MouseCaptureLost, OnMouseCaptureLost) |
IPC_MESSAGE_HANDLER(InputMsg_SetEditCommandsForNextKeyEvent, |
OnSetEditCommandsForNextKeyEvent) |
@@ -1075,6 +1081,25 @@ void RenderWidget::UpdateTextInputStateInternal(bool show_virtual_keyboard, |
} |
} |
+void RenderWidget::HandlePotentialTextSuggestionTap() { |
+ blink::WebInputMethodController* controller = GetInputMethodController(); |
+ if (!controller) |
+ return; |
+ |
+ WebVector<blink::WebTextSuggestionInfo> suggestion_infos = |
+ controller->getTextSuggestionInfosUnderCaret(); |
+ |
+ if (suggestion_infos.size() == 0) |
+ return; |
+ |
+ // The composition is now on the suggestion range highlight |
+ UpdateCompositionInfo(false /* not an immediate request */); |
+ |
+ Send(new InputHostMsg_ShowTextSuggestionMenu( |
+ routing_id(), std::vector<blink::WebTextSuggestionInfo>( |
+ suggestion_infos.begin(), suggestion_infos.end()))); |
+} |
+ |
bool RenderWidget::WillHandleGestureEvent(const blink::WebGestureEvent& event) { |
possible_drag_event_info_.event_source = |
ui::DragDropTypes::DRAG_EVENT_SOURCE_TOUCH; |
@@ -1613,6 +1638,25 @@ void RenderWidget::OnImeFinishComposingText(bool keep_selection) { |
UpdateCompositionInfo(false /* not an immediate request */); |
} |
+void RenderWidget::OnImeApplySuggestionReplacement(int document_marker_id, |
+ int suggestion_index) { |
+ if (auto* controller = GetInputMethodController()) { |
+ controller->applySuggestionReplacement(document_marker_id, |
+ suggestion_index); |
+ } |
+} |
+ |
+void RenderWidget::OnImeDeleteSuggestionHighlight() { |
+ if (auto* controller = GetInputMethodController()) { |
+ controller->deleteSuggestionHighlight(); |
+ } |
+} |
+ |
+void RenderWidget::OnImeCloseSuggestionMenu() { |
+ if (auto* controller = GetInputMethodController()) |
+ controller->closeSuggestionMenu(); |
+} |
+ |
void RenderWidget::OnDeviceScaleFactorChanged() { |
if (!compositor_) |
return; |