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 7c8d13ddcd69ff05f9ba0a25649f7bd9007601fa..659db53b053db94fd5a47c6dbeca321c6951c7d9 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_android.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
@@ -25,6 +25,7 @@ |
#include "cc/output/compositor_frame_ack.h" |
#include "cc/output/copy_output_request.h" |
#include "cc/output/copy_output_result.h" |
+#include "cc/output/viewport_selection_bound.h" |
#include "cc/resources/single_release_callback.h" |
#include "cc/trees/layer_tree_host.h" |
#include "content/browser/accessibility/browser_accessibility_manager_android.h" |
@@ -770,31 +771,32 @@ void RenderWidgetHostViewAndroid::SelectionBoundsChanged( |
if (!selection_controller_) |
return; |
- gfx::RectF anchor_rect(params.anchor_rect); |
- gfx::RectF focus_rect(params.focus_rect); |
+ gfx::RectF start_rect(params.anchor_rect); |
+ gfx::RectF end_rect(params.focus_rect); |
if (params.is_anchor_first) |
- std::swap(anchor_rect, focus_rect); |
+ std::swap(start_rect, end_rect); |
+ |
+ cc::ViewportSelectionBound start_bound, end_bound; |
+ start_bound.visible = true; |
+ end_bound.visible = true; |
+ start_bound.edge_top = start_rect.origin(); |
+ start_bound.edge_bottom = start_rect.bottom_left(); |
+ end_bound.edge_top = end_rect.origin(); |
+ end_bound.edge_bottom = end_rect.bottom_left(); |
- TouchHandleOrientation anchor_orientation(TOUCH_HANDLE_ORIENTATION_UNDEFINED); |
- TouchHandleOrientation focus_orientation(TOUCH_HANDLE_ORIENTATION_UNDEFINED); |
if (params.anchor_rect == params.focus_rect) { |
if (params.anchor_rect.x() && params.anchor_rect.y()) |
- anchor_orientation = focus_orientation = TOUCH_HANDLE_CENTER; |
+ start_bound.type = end_bound.type = cc::SELECTION_BOUND_CENTER; |
} else { |
- anchor_orientation = params.anchor_dir == blink::WebTextDirectionRightToLeft |
- ? TOUCH_HANDLE_LEFT |
- : TOUCH_HANDLE_RIGHT; |
- focus_orientation = params.focus_dir == blink::WebTextDirectionRightToLeft |
- ? TOUCH_HANDLE_RIGHT |
- : TOUCH_HANDLE_LEFT; |
+ start_bound.type = params.anchor_dir == blink::WebTextDirectionRightToLeft |
+ ? cc::SELECTION_BOUND_LEFT |
+ : cc::SELECTION_BOUND_RIGHT; |
+ end_bound.type = params.focus_dir == blink::WebTextDirectionRightToLeft |
+ ? cc::SELECTION_BOUND_RIGHT |
+ : cc::SELECTION_BOUND_LEFT; |
} |
- selection_controller_->OnSelectionBoundsChanged(anchor_rect, |
- anchor_orientation, |
- true, |
- focus_rect, |
- focus_orientation, |
- true); |
+ selection_controller_->OnSelectionBoundsChanged(start_bound, end_bound); |
} |
void RenderWidgetHostViewAndroid::SetBackgroundOpaque(bool opaque) { |
@@ -1539,15 +1541,17 @@ void RenderWidgetHostViewAndroid::OnShowingPastePopup( |
// of the region have been updated, explicitly set the properties now. |
// TODO(jdduke): Remove this workaround when auxiliary paste popup |
// notifications are no longer required, crbug.com/398170. |
- gfx::RectF rect(point, gfx::SizeF()); |
- TouchHandleOrientation orientation = TOUCH_HANDLE_CENTER; |
- const bool visible = true; |
+ cc::ViewportSelectionBound insertion_bound; |
+ insertion_bound.type = cc::SELECTION_BOUND_LEFT; |
+ insertion_bound.visible = true; |
+ insertion_bound.edge_top = point; |
+ insertion_bound.edge_bottom = point; |
HideTextHandles(); |
ShowSelectionHandlesAutomatically(); |
selection_controller_->OnSelectionEditable(true); |
selection_controller_->OnSelectionEmpty(true); |
- selection_controller_->OnSelectionBoundsChanged( |
- rect, orientation, visible, rect, orientation, visible); |
+ selection_controller_->OnSelectionBoundsChanged(insertion_bound, |
+ insertion_bound); |
} |
SkColor RenderWidgetHostViewAndroid::GetCachedBackgroundColor() const { |