| OLD | NEW |
| 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/browser/renderer_host/render_widget_host_view_android.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_android.h" |
| 6 | 6 |
| 7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 1321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1332 bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata); | 1332 bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata); |
| 1333 gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); | 1333 gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); |
| 1334 | 1334 |
| 1335 if (!content_view_core_) | 1335 if (!content_view_core_) |
| 1336 return; | 1336 return; |
| 1337 | 1337 |
| 1338 if (overscroll_controller_) | 1338 if (overscroll_controller_) |
| 1339 overscroll_controller_->OnFrameMetadataUpdated(frame_metadata); | 1339 overscroll_controller_->OnFrameMetadataUpdated(frame_metadata); |
| 1340 | 1340 |
| 1341 if (selection_controller_) { | 1341 if (selection_controller_) { |
| 1342 selection_controller_->OnSelectionEditable( |
| 1343 frame_metadata.selection.is_editable); |
| 1344 selection_controller_->OnSelectionEmpty( |
| 1345 frame_metadata.selection.is_empty_text_form_control); |
| 1342 selection_controller_->OnSelectionBoundsChanged( | 1346 selection_controller_->OnSelectionBoundsChanged( |
| 1343 frame_metadata.selection.start, frame_metadata.selection.end); | 1347 frame_metadata.selection.start, frame_metadata.selection.end); |
| 1344 | 1348 |
| 1345 // Set parameters for adaptive handle orientation. | 1349 // Set parameters for adaptive handle orientation. |
| 1346 gfx::SizeF viewport_size(frame_metadata.scrollable_viewport_size); | 1350 gfx::SizeF viewport_size(frame_metadata.scrollable_viewport_size); |
| 1347 viewport_size.Scale(frame_metadata.page_scale_factor); | 1351 viewport_size.Scale(frame_metadata.page_scale_factor); |
| 1348 gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height * | 1352 gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height * |
| 1349 frame_metadata.top_controls_shown_ratio, | 1353 frame_metadata.top_controls_shown_ratio, |
| 1350 viewport_size.width(), viewport_size.height()); | 1354 viewport_size.width(), viewport_size.height()); |
| 1351 selection_controller_->OnViewportChanged(viewport_rect); | 1355 selection_controller_->OnViewportChanged(viewport_rect); |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1584 } | 1588 } |
| 1585 | 1589 |
| 1586 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent( | 1590 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent( |
| 1587 const blink::WebInputEvent& input_event) { | 1591 const blink::WebInputEvent& input_event) { |
| 1588 if (selection_controller_ && | 1592 if (selection_controller_ && |
| 1589 blink::WebInputEvent::isGestureEventType(input_event.type())) { | 1593 blink::WebInputEvent::isGestureEventType(input_event.type())) { |
| 1590 const blink::WebGestureEvent& gesture_event = | 1594 const blink::WebGestureEvent& gesture_event = |
| 1591 static_cast<const blink::WebGestureEvent&>(input_event); | 1595 static_cast<const blink::WebGestureEvent&>(input_event); |
| 1592 switch (gesture_event.type()) { | 1596 switch (gesture_event.type()) { |
| 1593 case blink::WebInputEvent::GestureLongPress: | 1597 case blink::WebInputEvent::GestureLongPress: |
| 1594 selection_controller_->HandleLongPressEvent( | 1598 if (selection_controller_->WillHandleLongPressEvent( |
| 1595 base::TimeTicks() + | 1599 base::TimeTicks() + base::TimeDelta::FromSecondsD( |
| 1596 base::TimeDelta::FromSecondsD(input_event.timeStampSeconds()), | 1600 input_event.timeStampSeconds()), |
| 1597 gfx::PointF(gesture_event.x, gesture_event.y)); | 1601 gfx::PointF(gesture_event.x, gesture_event.y))) { |
| 1602 return INPUT_EVENT_ACK_STATE_CONSUMED; |
| 1603 } |
| 1598 break; | 1604 break; |
| 1599 | 1605 |
| 1600 case blink::WebInputEvent::GestureTap: | 1606 case blink::WebInputEvent::GestureTap: |
| 1601 selection_controller_->HandleTapEvent( | 1607 if (selection_controller_->WillHandleTapEvent( |
| 1602 gfx::PointF(gesture_event.x, gesture_event.y), | 1608 gfx::PointF(gesture_event.x, gesture_event.y), |
| 1603 gesture_event.data.tap.tapCount); | 1609 gesture_event.data.tap.tapCount)) { |
| 1610 return INPUT_EVENT_ACK_STATE_CONSUMED; |
| 1611 } |
| 1604 break; | 1612 break; |
| 1605 | 1613 |
| 1606 case blink::WebInputEvent::GestureScrollBegin: | 1614 case blink::WebInputEvent::GestureScrollBegin: |
| 1607 selection_controller_->OnScrollBeginEvent(); | 1615 selection_controller_->OnScrollBeginEvent(); |
| 1608 break; | 1616 break; |
| 1609 | 1617 |
| 1610 default: | 1618 default: |
| 1611 break; | 1619 break; |
| 1612 } | 1620 } |
| 1613 } | 1621 } |
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1990 float y0, | 1998 float y0, |
| 1991 float x1, | 1999 float x1, |
| 1992 float y1) { | 2000 float y1) { |
| 1993 SelectBetweenCoordinates(gfx::PointF(x0, y0), gfx::PointF(x1, y1)); | 2001 SelectBetweenCoordinates(gfx::PointF(x0, y0), gfx::PointF(x1, y1)); |
| 1994 } | 2002 } |
| 1995 | 2003 |
| 1996 void RenderWidgetHostViewAndroid::OnStylusSelectUpdate(float x, float y) { | 2004 void RenderWidgetHostViewAndroid::OnStylusSelectUpdate(float x, float y) { |
| 1997 MoveRangeSelectionExtent(gfx::PointF(x, y)); | 2005 MoveRangeSelectionExtent(gfx::PointF(x, y)); |
| 1998 } | 2006 } |
| 1999 | 2007 |
| 2008 void RenderWidgetHostViewAndroid::OnStylusSelectEnd() { |
| 2009 if (selection_controller_) |
| 2010 selection_controller_->AllowShowingFromCurrentSelection(); |
| 2011 } |
| 2012 |
| 2000 void RenderWidgetHostViewAndroid::OnStylusSelectTap(base::TimeTicks time, | 2013 void RenderWidgetHostViewAndroid::OnStylusSelectTap(base::TimeTicks time, |
| 2001 float x, | 2014 float x, |
| 2002 float y) { | 2015 float y) { |
| 2003 // Treat the stylus tap as a long press, activating either a word selection or | 2016 // Treat the stylus tap as a long press, activating either a word selection or |
| 2004 // context menu depending on the targetted content. | 2017 // context menu depending on the targetted content. |
| 2005 blink::WebGestureEvent long_press = WebGestureEventBuilder::Build( | 2018 blink::WebGestureEvent long_press = WebGestureEventBuilder::Build( |
| 2006 blink::WebInputEvent::GestureLongPress, | 2019 blink::WebInputEvent::GestureLongPress, |
| 2007 (time - base::TimeTicks()).InSecondsF(), x, y); | 2020 (time - base::TimeTicks()).InSecondsF(), x, y); |
| 2008 SendGestureEvent(long_press); | 2021 SendGestureEvent(long_press); |
| 2009 } | 2022 } |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2067 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); | 2080 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); |
| 2068 if (!compositor) | 2081 if (!compositor) |
| 2069 return; | 2082 return; |
| 2070 | 2083 |
| 2071 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( | 2084 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( |
| 2072 overscroll_refresh_handler, compositor, | 2085 overscroll_refresh_handler, compositor, |
| 2073 ui::GetScaleFactorForNativeView(GetNativeView())); | 2086 ui::GetScaleFactorForNativeView(GetNativeView())); |
| 2074 } | 2087 } |
| 2075 | 2088 |
| 2076 } // namespace content | 2089 } // namespace content |
| OLD | NEW |