Chromium Code Reviews| Index: content/renderer/render_view_impl.cc |
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
| index 80eba094cebbfc955babe931fb9559c6f4c41477..b6f0c7c31ef365b69fe39fad61ff5914551bd417 100644 |
| --- a/content/renderer/render_view_impl.cc |
| +++ b/content/renderer/render_view_impl.cc |
| @@ -1280,12 +1280,28 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) { |
| } |
| void RenderViewImpl::OnSelectWordAroundCaret() { |
| - if (!webview()) |
| - return; |
| + // Set default values for the ACK |
| + bool did_select = false; |
| + int start_adjust = 0; |
| + int end_adjust = 0; |
| - input_handler_->set_handling_input_event(true); |
| - webview()->FocusedFrame()->SelectWordAroundCaret(); |
| - input_handler_->set_handling_input_event(false); |
| + if (webview()) { |
| + auto* focused_frame = GetWebView()->FocusedFrame(); |
|
aelias_OOO_until_Jul13
2017/05/15 17:46:20
nit: please avoid 'auto' here, type is likely not
Donn Denman
2017/05/15 21:13:14
Done.
|
| + if (focused_frame) { |
| + input_handler_->set_handling_input_event(true); |
| + blink::WebRange initial_range = focused_frame->SelectionRange(); |
| + did_select = focused_frame->SelectWordAroundCaret(); |
| + if (did_select) { |
| + blink::WebRange adjusted_range = focused_frame->SelectionRange(); |
| + start_adjust = |
| + adjusted_range.StartOffset() - initial_range.StartOffset(); |
| + end_adjust = adjusted_range.EndOffset() - initial_range.EndOffset(); |
| + } |
| + input_handler_->set_handling_input_event(false); |
| + } |
| + } |
| + Send(new ViewHostMsg_SelectWordAroundCaretAck(GetRoutingID(), did_select, |
| + start_adjust, end_adjust)); |
| } |
| void RenderViewImpl::OnUpdateTargetURLAck() { |