| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index eba0382f3453be34ace76c5ecbc5423274f14451..bb7a36fb281247847e99353125e1283ddfeb1625 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -4049,7 +4049,8 @@ void RenderViewImpl::OnEnableViewSourceMode() {
|
|
|
| #if defined(OS_ANDROID)
|
| bool RenderViewImpl::didTapMultipleTargets(
|
| - const blink::WebGestureEvent& event,
|
| + const WebSize& inner_viewport_offset,
|
| + const WebRect& touch_rect,
|
| const WebVector<WebRect>& target_rects) {
|
| // Never show a disambiguation popup when accessibility is enabled,
|
| // as this interferes with "touch exploration".
|
| @@ -4061,13 +4062,12 @@ bool RenderViewImpl::didTapMultipleTargets(
|
| if (matches_accessibility_mode_complete)
|
| return false;
|
|
|
| - gfx::Rect finger_rect(
|
| - event.x - event.data.tap.width / 2, event.y - event.data.tap.height / 2,
|
| - event.data.tap.width, event.data.tap.height);
|
| + // The touch_rect, target_rects and zoom_rect are in the outer viewport
|
| + // reference frame.
|
| gfx::Rect zoom_rect;
|
| float new_total_scale =
|
| DisambiguationPopupHelper::ComputeZoomAreaAndScaleFactor(
|
| - finger_rect, target_rects, GetSize(),
|
| + touch_rect, target_rects, GetSize(),
|
| gfx::Rect(webview()->mainFrame()->visibleContentRect()).size(),
|
| device_scale_factor_ * webview()->pageScaleFactor(), &zoom_rect);
|
| if (!new_total_scale)
|
| @@ -4107,8 +4107,13 @@ bool RenderViewImpl::didTapMultipleTargets(
|
| webwidget_->paintCompositedDeprecated(&canvas, zoom_rect);
|
| }
|
|
|
| + gfx::Rect zoom_rect_in_screen =
|
| + zoom_rect - gfx::Vector2d(inner_viewport_offset.width,
|
| + inner_viewport_offset.height);
|
| +
|
| gfx::Rect physical_window_zoom_rect = gfx::ToEnclosingRect(
|
| - ClientRectToPhysicalWindowRect(gfx::RectF(zoom_rect)));
|
| + ClientRectToPhysicalWindowRect(gfx::RectF(zoom_rect_in_screen)));
|
| +
|
| Send(new ViewHostMsg_ShowDisambiguationPopup(routing_id_,
|
| physical_window_zoom_rect,
|
| canvas_size,
|
|
|