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 1303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1314 bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata); | 1314 bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata); |
1315 gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); | 1315 gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); |
1316 | 1316 |
1317 if (!content_view_core_) | 1317 if (!content_view_core_) |
1318 return; | 1318 return; |
1319 | 1319 |
1320 if (overscroll_controller_) | 1320 if (overscroll_controller_) |
1321 overscroll_controller_->OnFrameMetadataUpdated(frame_metadata); | 1321 overscroll_controller_->OnFrameMetadataUpdated(frame_metadata); |
1322 | 1322 |
1323 if (selection_controller_) { | 1323 if (selection_controller_) { |
1324 selection_controller_->OnSelectionEditable( | |
1325 frame_metadata.selection.is_editable); | |
1326 selection_controller_->OnSelectionEmpty( | |
1327 frame_metadata.selection.is_empty_text_form_control); | |
1328 selection_controller_->OnSelectionBoundsChanged( | 1324 selection_controller_->OnSelectionBoundsChanged( |
1329 frame_metadata.selection.start, frame_metadata.selection.end); | 1325 frame_metadata.selection.start, frame_metadata.selection.end); |
1330 | 1326 |
1331 // Set parameters for adaptive handle orientation. | 1327 // Set parameters for adaptive handle orientation. |
1332 gfx::SizeF viewport_size(frame_metadata.scrollable_viewport_size); | 1328 gfx::SizeF viewport_size(frame_metadata.scrollable_viewport_size); |
1333 viewport_size.Scale(frame_metadata.page_scale_factor); | 1329 viewport_size.Scale(frame_metadata.page_scale_factor); |
1334 gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height * | 1330 gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height * |
1335 frame_metadata.top_controls_shown_ratio, | 1331 frame_metadata.top_controls_shown_ratio, |
1336 viewport_size.width(), viewport_size.height()); | 1332 viewport_size.width(), viewport_size.height()); |
1337 selection_controller_->OnViewportChanged(viewport_rect); | 1333 selection_controller_->OnViewportChanged(viewport_rect); |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1554 } | 1550 } |
1555 | 1551 |
1556 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent( | 1552 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent( |
1557 const blink::WebInputEvent& input_event) { | 1553 const blink::WebInputEvent& input_event) { |
1558 if (selection_controller_ && | 1554 if (selection_controller_ && |
1559 blink::WebInputEvent::isGestureEventType(input_event.type)) { | 1555 blink::WebInputEvent::isGestureEventType(input_event.type)) { |
1560 const blink::WebGestureEvent& gesture_event = | 1556 const blink::WebGestureEvent& gesture_event = |
1561 static_cast<const blink::WebGestureEvent&>(input_event); | 1557 static_cast<const blink::WebGestureEvent&>(input_event); |
1562 switch (gesture_event.type) { | 1558 switch (gesture_event.type) { |
1563 case blink::WebInputEvent::GestureLongPress: | 1559 case blink::WebInputEvent::GestureLongPress: |
1564 if (selection_controller_->WillHandleLongPressEvent( | 1560 selection_controller_->WillHandleLongPressEvent( |
1565 base::TimeTicks() + | 1561 base::TimeTicks() + |
1566 base::TimeDelta::FromSecondsD(input_event.timeStampSeconds), | 1562 base::TimeDelta::FromSecondsD(input_event.timeStampSeconds), |
1567 gfx::PointF(gesture_event.x, gesture_event.y))) { | 1563 gfx::PointF(gesture_event.x, gesture_event.y)); |
1568 return INPUT_EVENT_ACK_STATE_CONSUMED; | |
1569 } | |
1570 break; | 1564 break; |
1571 | 1565 |
1572 case blink::WebInputEvent::GestureTap: | 1566 case blink::WebInputEvent::GestureTap: |
1573 if (selection_controller_->WillHandleTapEvent( | 1567 selection_controller_->WillHandleTapEvent( |
1574 gfx::PointF(gesture_event.x, gesture_event.y), | 1568 gfx::PointF(gesture_event.x, gesture_event.y), |
1575 gesture_event.data.tap.tapCount)) { | 1569 gesture_event.data.tap.tapCount); |
1576 return INPUT_EVENT_ACK_STATE_CONSUMED; | |
1577 } | |
1578 break; | 1570 break; |
1579 | 1571 |
1580 case blink::WebInputEvent::GestureScrollBegin: | 1572 case blink::WebInputEvent::GestureScrollBegin: |
1581 selection_controller_->OnScrollBeginEvent(); | 1573 selection_controller_->OnScrollBeginEvent(); |
1582 break; | 1574 break; |
1583 | 1575 |
1584 default: | 1576 default: |
1585 break; | 1577 break; |
1586 } | 1578 } |
1587 } | 1579 } |
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1939 float y0, | 1931 float y0, |
1940 float x1, | 1932 float x1, |
1941 float y1) { | 1933 float y1) { |
1942 SelectBetweenCoordinates(gfx::PointF(x0, y0), gfx::PointF(x1, y1)); | 1934 SelectBetweenCoordinates(gfx::PointF(x0, y0), gfx::PointF(x1, y1)); |
1943 } | 1935 } |
1944 | 1936 |
1945 void RenderWidgetHostViewAndroid::OnStylusSelectUpdate(float x, float y) { | 1937 void RenderWidgetHostViewAndroid::OnStylusSelectUpdate(float x, float y) { |
1946 MoveRangeSelectionExtent(gfx::PointF(x, y)); | 1938 MoveRangeSelectionExtent(gfx::PointF(x, y)); |
1947 } | 1939 } |
1948 | 1940 |
1949 void RenderWidgetHostViewAndroid::OnStylusSelectEnd() { | |
1950 if (selection_controller_) | |
1951 selection_controller_->AllowShowingFromCurrentSelection(); | |
1952 } | |
1953 | |
1954 void RenderWidgetHostViewAndroid::OnStylusSelectTap(base::TimeTicks time, | 1941 void RenderWidgetHostViewAndroid::OnStylusSelectTap(base::TimeTicks time, |
1955 float x, | 1942 float x, |
1956 float y) { | 1943 float y) { |
1957 // Treat the stylus tap as a long press, activating either a word selection or | 1944 // Treat the stylus tap as a long press, activating either a word selection or |
1958 // context menu depending on the targetted content. | 1945 // context menu depending on the targetted content. |
1959 blink::WebGestureEvent long_press = WebGestureEventBuilder::Build( | 1946 blink::WebGestureEvent long_press = WebGestureEventBuilder::Build( |
1960 blink::WebInputEvent::GestureLongPress, | 1947 blink::WebInputEvent::GestureLongPress, |
1961 (time - base::TimeTicks()).InSecondsF(), x, y); | 1948 (time - base::TimeTicks()).InSecondsF(), x, y); |
1962 SendGestureEvent(long_press); | 1949 SendGestureEvent(long_press); |
1963 } | 1950 } |
(...skipping 15 matching lines...) Expand all Loading... |
1979 case ui::MotionEvent::ACTION_UP: | 1966 case ui::MotionEvent::ACTION_UP: |
1980 case ui::MotionEvent::ACTION_POINTER_UP: | 1967 case ui::MotionEvent::ACTION_POINTER_UP: |
1981 UMA_HISTOGRAM_CUSTOM_COUNTS("Event.Latency.OS.TOUCH_RELEASED", | 1968 UMA_HISTOGRAM_CUSTOM_COUNTS("Event.Latency.OS.TOUCH_RELEASED", |
1982 delta.InMicroseconds(), 1, 1000000, 50); | 1969 delta.InMicroseconds(), 1, 1000000, 50); |
1983 default: | 1970 default: |
1984 return; | 1971 return; |
1985 } | 1972 } |
1986 } | 1973 } |
1987 | 1974 |
1988 } // namespace content | 1975 } // namespace content |
OLD | NEW |