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