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 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1338 bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata); | 1338 bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata); |
1339 gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); | 1339 gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); |
1340 | 1340 |
1341 if (!content_view_core_) | 1341 if (!content_view_core_) |
1342 return; | 1342 return; |
1343 | 1343 |
1344 if (overscroll_controller_) | 1344 if (overscroll_controller_) |
1345 overscroll_controller_->OnFrameMetadataUpdated(frame_metadata); | 1345 overscroll_controller_->OnFrameMetadataUpdated(frame_metadata); |
1346 | 1346 |
1347 if (selection_controller_) { | 1347 if (selection_controller_) { |
1348 selection_controller_->OnSelectionEditable( | |
1349 frame_metadata.selection.is_editable); | |
1350 selection_controller_->OnSelectionEmpty( | |
1351 frame_metadata.selection.is_empty_text_form_control); | |
1352 selection_controller_->OnSelectionBoundsChanged( | 1348 selection_controller_->OnSelectionBoundsChanged( |
1353 frame_metadata.selection.start, frame_metadata.selection.end); | 1349 frame_metadata.selection.start, frame_metadata.selection.end); |
1354 | 1350 |
1355 // Set parameters for adaptive handle orientation. | 1351 // Set parameters for adaptive handle orientation. |
1356 gfx::SizeF viewport_size(frame_metadata.scrollable_viewport_size); | 1352 gfx::SizeF viewport_size(frame_metadata.scrollable_viewport_size); |
1357 viewport_size.Scale(frame_metadata.page_scale_factor); | 1353 viewport_size.Scale(frame_metadata.page_scale_factor); |
1358 gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height * | 1354 gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height * |
1359 frame_metadata.top_controls_shown_ratio, | 1355 frame_metadata.top_controls_shown_ratio, |
1360 viewport_size.width(), viewport_size.height()); | 1356 viewport_size.width(), viewport_size.height()); |
1361 selection_controller_->OnViewportChanged(viewport_rect); | 1357 selection_controller_->OnViewportChanged(viewport_rect); |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1594 } | 1590 } |
1595 | 1591 |
1596 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent( | 1592 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent( |
1597 const blink::WebInputEvent& input_event) { | 1593 const blink::WebInputEvent& input_event) { |
1598 if (selection_controller_ && | 1594 if (selection_controller_ && |
1599 blink::WebInputEvent::isGestureEventType(input_event.type())) { | 1595 blink::WebInputEvent::isGestureEventType(input_event.type())) { |
1600 const blink::WebGestureEvent& gesture_event = | 1596 const blink::WebGestureEvent& gesture_event = |
1601 static_cast<const blink::WebGestureEvent&>(input_event); | 1597 static_cast<const blink::WebGestureEvent&>(input_event); |
1602 switch (gesture_event.type()) { | 1598 switch (gesture_event.type()) { |
1603 case blink::WebInputEvent::GestureLongPress: | 1599 case blink::WebInputEvent::GestureLongPress: |
1604 if (selection_controller_->WillHandleLongPressEvent( | 1600 selection_controller_->HandleLongPressEvent( |
1605 base::TimeTicks() + base::TimeDelta::FromSecondsD( | 1601 base::TimeTicks() + |
1606 input_event.timeStampSeconds()), | 1602 base::TimeDelta::FromSecondsD(input_event.timeStampSeconds()), |
1607 gfx::PointF(gesture_event.x, gesture_event.y))) { | 1603 gfx::PointF(gesture_event.x, gesture_event.y)); |
1608 return INPUT_EVENT_ACK_STATE_CONSUMED; | |
1609 } | |
1610 break; | 1604 break; |
1611 | 1605 |
1612 case blink::WebInputEvent::GestureTap: | 1606 case blink::WebInputEvent::GestureTap: |
1613 if (selection_controller_->WillHandleTapEvent( | 1607 selection_controller_->HandleTapEvent( |
1614 gfx::PointF(gesture_event.x, gesture_event.y), | 1608 gfx::PointF(gesture_event.x, gesture_event.y), |
1615 gesture_event.data.tap.tapCount)) { | 1609 gesture_event.data.tap.tapCount); |
1616 return INPUT_EVENT_ACK_STATE_CONSUMED; | |
1617 } | |
1618 break; | 1610 break; |
1619 | 1611 |
1620 case blink::WebInputEvent::GestureScrollBegin: | 1612 case blink::WebInputEvent::GestureScrollBegin: |
1621 selection_controller_->OnScrollBeginEvent(); | 1613 selection_controller_->OnScrollBeginEvent(); |
1622 break; | 1614 break; |
1623 | 1615 |
1624 default: | 1616 default: |
1625 break; | 1617 break; |
1626 } | 1618 } |
1627 } | 1619 } |
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2000 float y0, | 1992 float y0, |
2001 float x1, | 1993 float x1, |
2002 float y1) { | 1994 float y1) { |
2003 SelectBetweenCoordinates(gfx::PointF(x0, y0), gfx::PointF(x1, y1)); | 1995 SelectBetweenCoordinates(gfx::PointF(x0, y0), gfx::PointF(x1, y1)); |
2004 } | 1996 } |
2005 | 1997 |
2006 void RenderWidgetHostViewAndroid::OnStylusSelectUpdate(float x, float y) { | 1998 void RenderWidgetHostViewAndroid::OnStylusSelectUpdate(float x, float y) { |
2007 MoveRangeSelectionExtent(gfx::PointF(x, y)); | 1999 MoveRangeSelectionExtent(gfx::PointF(x, y)); |
2008 } | 2000 } |
2009 | 2001 |
2010 void RenderWidgetHostViewAndroid::OnStylusSelectEnd() { | |
2011 if (selection_controller_) | |
2012 selection_controller_->AllowShowingFromCurrentSelection(); | |
2013 } | |
2014 | |
2015 void RenderWidgetHostViewAndroid::OnStylusSelectTap(base::TimeTicks time, | 2002 void RenderWidgetHostViewAndroid::OnStylusSelectTap(base::TimeTicks time, |
2016 float x, | 2003 float x, |
2017 float y) { | 2004 float y) { |
2018 // Treat the stylus tap as a long press, activating either a word selection or | 2005 // Treat the stylus tap as a long press, activating either a word selection or |
2019 // context menu depending on the targetted content. | 2006 // context menu depending on the targetted content. |
2020 blink::WebGestureEvent long_press = WebGestureEventBuilder::Build( | 2007 blink::WebGestureEvent long_press = WebGestureEventBuilder::Build( |
2021 blink::WebInputEvent::GestureLongPress, | 2008 blink::WebInputEvent::GestureLongPress, |
2022 (time - base::TimeTicks()).InSecondsF(), x, y); | 2009 (time - base::TimeTicks()).InSecondsF(), x, y); |
2023 SendGestureEvent(long_press); | 2010 SendGestureEvent(long_press); |
2024 } | 2011 } |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2083 if (!compositor) | 2070 if (!compositor) |
2084 return; | 2071 return; |
2085 | 2072 |
2086 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( | 2073 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( |
2087 overscroll_refresh_handler, compositor, | 2074 overscroll_refresh_handler, compositor, |
2088 ui::GetScaleFactorForNativeView(GetNativeView())); | 2075 ui::GetScaleFactorForNativeView(GetNativeView())); |
2089 is_showing_overscroll_glow_ = true; | 2076 is_showing_overscroll_glow_ = true; |
2090 } | 2077 } |
2091 | 2078 |
2092 } // namespace content | 2079 } // namespace content |
OLD | NEW |