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

Side by Side Diff: content/renderer/render_widget.cc

Issue 2650113004: [WIP] Add support for Android SuggestionSpans when editing text (Closed)
Patch Set: Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_widget.h" 5 #include "content/renderer/render_widget.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 580
581 bool handled = true; 581 bool handled = true;
582 IPC_BEGIN_MESSAGE_MAP(RenderWidget, message) 582 IPC_BEGIN_MESSAGE_MAP(RenderWidget, message)
583 IPC_MESSAGE_HANDLER(InputMsg_HandleInputEvent, OnHandleInputEvent) 583 IPC_MESSAGE_HANDLER(InputMsg_HandleInputEvent, OnHandleInputEvent)
584 IPC_MESSAGE_HANDLER(InputMsg_CursorVisibilityChange, 584 IPC_MESSAGE_HANDLER(InputMsg_CursorVisibilityChange,
585 OnCursorVisibilityChange) 585 OnCursorVisibilityChange)
586 IPC_MESSAGE_HANDLER(InputMsg_ImeSetComposition, OnImeSetComposition) 586 IPC_MESSAGE_HANDLER(InputMsg_ImeSetComposition, OnImeSetComposition)
587 IPC_MESSAGE_HANDLER(InputMsg_ImeCommitText, OnImeCommitText) 587 IPC_MESSAGE_HANDLER(InputMsg_ImeCommitText, OnImeCommitText)
588 IPC_MESSAGE_HANDLER(InputMsg_ImeFinishComposingText, 588 IPC_MESSAGE_HANDLER(InputMsg_ImeFinishComposingText,
589 OnImeFinishComposingText) 589 OnImeFinishComposingText)
590 IPC_MESSAGE_HANDLER(InputMsg_ImeApplySuggestionReplacement,
591 OnImeApplySuggestionReplacement)
592 IPC_MESSAGE_HANDLER(InputMsg_ImeDeleteSuggestionHighlight,
593 OnImeDeleteSuggestionHighlight)
594 IPC_MESSAGE_HANDLER(InputMsg_ImeCloseSuggestionMenu,
595 OnImeCloseSuggestionMenu)
590 IPC_MESSAGE_HANDLER(InputMsg_MouseCaptureLost, OnMouseCaptureLost) 596 IPC_MESSAGE_HANDLER(InputMsg_MouseCaptureLost, OnMouseCaptureLost)
591 IPC_MESSAGE_HANDLER(InputMsg_SetEditCommandsForNextKeyEvent, 597 IPC_MESSAGE_HANDLER(InputMsg_SetEditCommandsForNextKeyEvent,
592 OnSetEditCommandsForNextKeyEvent) 598 OnSetEditCommandsForNextKeyEvent)
593 IPC_MESSAGE_HANDLER(InputMsg_SetFocus, OnSetFocus) 599 IPC_MESSAGE_HANDLER(InputMsg_SetFocus, OnSetFocus)
594 IPC_MESSAGE_HANDLER(InputMsg_SyntheticGestureCompleted, 600 IPC_MESSAGE_HANDLER(InputMsg_SyntheticGestureCompleted,
595 OnSyntheticGestureCompleted) 601 OnSyntheticGestureCompleted)
596 IPC_MESSAGE_HANDLER(ViewMsg_Close, OnClose) 602 IPC_MESSAGE_HANDLER(ViewMsg_Close, OnClose)
597 IPC_MESSAGE_HANDLER(ViewMsg_Resize, OnResize) 603 IPC_MESSAGE_HANDLER(ViewMsg_Resize, OnResize)
598 IPC_MESSAGE_HANDLER(ViewMsg_EnableDeviceEmulation, 604 IPC_MESSAGE_HANDLER(ViewMsg_EnableDeviceEmulation,
599 OnEnableDeviceEmulation) 605 OnEnableDeviceEmulation)
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after
1068 Send(new ViewHostMsg_TextInputStateChanged(routing_id(), params)); 1074 Send(new ViewHostMsg_TextInputStateChanged(routing_id(), params));
1069 1075
1070 text_input_info_ = new_info; 1076 text_input_info_ = new_info;
1071 text_input_type_ = new_type; 1077 text_input_type_ = new_type;
1072 text_input_mode_ = new_mode; 1078 text_input_mode_ = new_mode;
1073 can_compose_inline_ = new_can_compose_inline; 1079 can_compose_inline_ = new_can_compose_inline;
1074 text_input_flags_ = new_info.flags; 1080 text_input_flags_ = new_info.flags;
1075 } 1081 }
1076 } 1082 }
1077 1083
1084 void RenderWidget::HandlePotentialTextSuggestionTap() {
1085 blink::WebInputMethodController* controller = GetInputMethodController();
1086 if (!controller)
1087 return;
1088
1089 WebVector<blink::WebTextSuggestionInfo> suggestion_infos =
1090 controller->getTextSuggestionInfosUnderCaret();
1091
1092 if (suggestion_infos.size() == 0)
1093 return;
1094
1095 // The composition is now on the suggestion range highlight
1096 UpdateCompositionInfo(false /* not an immediate request */);
1097
1098 Send(new InputHostMsg_ShowTextSuggestionMenu(
1099 routing_id(), std::vector<blink::WebTextSuggestionInfo>(
1100 suggestion_infos.begin(), suggestion_infos.end())));
1101 }
1102
1078 bool RenderWidget::WillHandleGestureEvent(const blink::WebGestureEvent& event) { 1103 bool RenderWidget::WillHandleGestureEvent(const blink::WebGestureEvent& event) {
1079 possible_drag_event_info_.event_source = 1104 possible_drag_event_info_.event_source =
1080 ui::DragDropTypes::DRAG_EVENT_SOURCE_TOUCH; 1105 ui::DragDropTypes::DRAG_EVENT_SOURCE_TOUCH;
1081 possible_drag_event_info_.event_location = 1106 possible_drag_event_info_.event_location =
1082 gfx::Point(event.globalX, event.globalY); 1107 gfx::Point(event.globalX, event.globalY);
1083 1108
1084 return false; 1109 return false;
1085 } 1110 }
1086 1111
1087 bool RenderWidget::WillHandleMouseEvent(const blink::WebMouseEvent& event) { 1112 bool RenderWidget::WillHandleMouseEvent(const blink::WebMouseEvent& event) {
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
1606 input_handler_->set_handling_input_event(true); 1631 input_handler_->set_handling_input_event(true);
1607 if (auto* controller = GetInputMethodController()) { 1632 if (auto* controller = GetInputMethodController()) {
1608 controller->finishComposingText( 1633 controller->finishComposingText(
1609 keep_selection ? WebInputMethodController::KeepSelection 1634 keep_selection ? WebInputMethodController::KeepSelection
1610 : WebInputMethodController::DoNotKeepSelection); 1635 : WebInputMethodController::DoNotKeepSelection);
1611 } 1636 }
1612 input_handler_->set_handling_input_event(false); 1637 input_handler_->set_handling_input_event(false);
1613 UpdateCompositionInfo(false /* not an immediate request */); 1638 UpdateCompositionInfo(false /* not an immediate request */);
1614 } 1639 }
1615 1640
1641 void RenderWidget::OnImeApplySuggestionReplacement(int document_marker_id,
1642 int suggestion_index) {
1643 if (auto* controller = GetInputMethodController()) {
1644 controller->applySuggestionReplacement(document_marker_id,
1645 suggestion_index);
1646 }
1647 }
1648
1649 void RenderWidget::OnImeDeleteSuggestionHighlight() {
1650 if (auto* controller = GetInputMethodController()) {
1651 controller->deleteSuggestionHighlight();
1652 }
1653 }
1654
1655 void RenderWidget::OnImeCloseSuggestionMenu() {
1656 if (auto* controller = GetInputMethodController())
1657 controller->closeSuggestionMenu();
1658 }
1659
1616 void RenderWidget::OnDeviceScaleFactorChanged() { 1660 void RenderWidget::OnDeviceScaleFactorChanged() {
1617 if (!compositor_) 1661 if (!compositor_)
1618 return; 1662 return;
1619 if (IsUseZoomForDSFEnabled()) 1663 if (IsUseZoomForDSFEnabled())
1620 compositor_->SetPaintedDeviceScaleFactor(GetOriginalDeviceScaleFactor()); 1664 compositor_->SetPaintedDeviceScaleFactor(GetOriginalDeviceScaleFactor());
1621 else 1665 else
1622 compositor_->setDeviceScaleFactor(device_scale_factor_); 1666 compositor_->setDeviceScaleFactor(device_scale_factor_);
1623 } 1667 }
1624 1668
1625 void RenderWidget::OnRepaint(gfx::Size size_to_paint) { 1669 void RenderWidget::OnRepaint(gfx::Size size_to_paint) {
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
2274 // browser side (https://crbug.com/669219). 2318 // browser side (https://crbug.com/669219).
2275 // If there is no WebFrameWidget, then there will be no 2319 // If there is no WebFrameWidget, then there will be no
2276 // InputMethodControllers for a WebLocalFrame. 2320 // InputMethodControllers for a WebLocalFrame.
2277 return nullptr; 2321 return nullptr;
2278 } 2322 }
2279 return static_cast<blink::WebFrameWidget*>(GetWebWidget()) 2323 return static_cast<blink::WebFrameWidget*>(GetWebWidget())
2280 ->getActiveWebInputMethodController(); 2324 ->getActiveWebInputMethodController();
2281 } 2325 }
2282 2326
2283 } // namespace content 2327 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698