Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_view_android.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc |
| index 51ac5fc2272a4b3315e25097a99b172785ed7826..8c57a111448ca6b813a059832927160d67310e78 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
| @@ -194,7 +194,8 @@ RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid( |
| widget_host->GetRoutingID()) != NULL), |
| frame_evictor_(new DelegatedFrameEvictor(this)), |
| locks_on_frame_count_(0), |
| - observing_root_window_(false) { |
| + observing_root_window_(false), |
| + gesture_text_selector_(new GestureTextSelector(this)) { |
| host_->SetView(this); |
| SetContentViewCore(content_view_core); |
| ImageTransportFactoryAndroid::AddObserver(this); |
| @@ -558,6 +559,11 @@ bool RenderWidgetHostViewAndroid::OnTouchEvent( |
| if (!gesture_provider_.OnTouchEvent(event)) |
| return false; |
| + if (gesture_text_selector_->OnTouchEvent(event)) { |
| + gesture_provider_.OnTouchEventAck(false); |
| + return true; |
| + } |
| + |
| // Short-circuit touch forwarding if no touch handlers exist. |
| if (!host_->ShouldForwardTouchEvent()) { |
| const bool event_consumed = false; |
| @@ -1287,6 +1293,9 @@ void RenderWidgetHostViewAndroid::RunAckCallbacks() { |
| void RenderWidgetHostViewAndroid::OnGestureEvent( |
| const ui::GestureEventData& gesture) { |
| + if (gesture_text_selector_->OnGestureEvent(gesture)) { |
|
jdduke (slow)
2014/06/24 15:38:37
Nit: No braces necessary (just add a line break).
Changwan Ryu
2014/06/25 07:26:21
Done.
|
| + return; |
| + } |
| SendGestureEvent(CreateWebGestureEventFromGestureEventData(gesture)); |
| } |
| @@ -1434,6 +1443,32 @@ SkBitmap::Config RenderWidgetHostViewAndroid::PreferredReadbackFormat() { |
| return SkBitmap::kARGB_8888_Config; |
| } |
| +void RenderWidgetHostViewAndroid::ShowSelectionHandlesAutomatically() { |
| + if (content_view_core_) |
| + content_view_core_->ShowSelectionHandlesAutomatically(); |
| +} |
| + |
| +void RenderWidgetHostViewAndroid::SelectRange( |
| + float x1, float y1, float x2, float y2) { |
| + if (content_view_core_) |
| + static_cast<WebContentsImpl*>(content_view_core_->GetWebContents())-> |
|
jdduke (slow)
2014/06/24 15:38:37
We'll want to ask sievers@ or aelias@ about WebCon
Changwan Ryu
2014/06/25 07:26:21
Added a TODO
|
| + SelectRange(gfx::Point(x1, y1), gfx::Point(x2, y2)); |
| +} |
| + |
| +void RenderWidgetHostViewAndroid::SelectWord(float x, float y) { |
| + if (host_) { |
| + host_->MoveCaret(gfx::Point(x, y)); |
| + RenderViewHost* render_view_host = RenderViewHost::From(host_); |
| + if (render_view_host) |
| + render_view_host->SelectWordAroundCaret(); |
| + } |
| +} |
| + |
| +void RenderWidgetHostViewAndroid::Unselect() { |
| + if (content_view_core_) |
| + content_view_core_->GetWebContents()->Unselect(); |
| +} |
| + |
| // static |
| void RenderWidgetHostViewBase::GetDefaultScreenInfo( |
| blink::WebScreenInfo* results) { |