OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ui/events/blink/input_handler_proxy.h" | 5 #include "ui/events/blink/input_handler_proxy.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 blink::WebGestureEvent::ScrollUnits::Page) { | 590 blink::WebGestureEvent::ScrollUnits::Page) { |
591 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; | 591 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; |
592 scroll_status.main_thread_scrolling_reasons = | 592 scroll_status.main_thread_scrolling_reasons = |
593 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; | 593 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; |
594 } else if (gesture_event.data.scrollBegin.targetViewport) { | 594 } else if (gesture_event.data.scrollBegin.targetViewport) { |
595 scroll_status = input_handler_->RootScrollBegin(&scroll_state, | 595 scroll_status = input_handler_->RootScrollBegin(&scroll_state, |
596 cc::InputHandler::GESTURE); | 596 cc::InputHandler::GESTURE); |
597 } else if (smooth_scroll_enabled_ && | 597 } else if (smooth_scroll_enabled_ && |
598 gesture_event.data.scrollBegin.deltaHintUnits == | 598 gesture_event.data.scrollBegin.deltaHintUnits == |
599 blink::WebGestureEvent::ScrollUnits::Pixels) { | 599 blink::WebGestureEvent::ScrollUnits::Pixels) { |
600 gfx::Vector2dF scroll_delta(-gesture_event.data.scrollBegin.deltaXHint, | 600 // Generate a scroll begin/end combination to determine if |
601 -gesture_event.data.scrollBegin.deltaYHint); | 601 // this can actually be handled by the impl thread or not. But |
602 scroll_status = input_handler_->ScrollAnimated( | 602 // don't generate any scroll yet; GestureScrollUpdate will generate |
603 gfx::Point(gesture_event.x, gesture_event.y), scroll_delta); | 603 // the scroll animation. |
| 604 scroll_status = input_handler_->ScrollBegin( |
| 605 &scroll_state, cc::InputHandler::ANIMATED_WHEEL); |
| 606 if (scroll_status.thread == cc::InputHandler::SCROLL_ON_IMPL_THREAD) { |
| 607 cc::ScrollStateData scroll_state_end_data; |
| 608 scroll_state_end_data.is_ending = true; |
| 609 cc::ScrollState scroll_state_end(scroll_state_end_data); |
| 610 input_handler_->ScrollEnd(&scroll_state_end); |
| 611 } |
604 } else { | 612 } else { |
605 scroll_status = | 613 scroll_status = |
606 input_handler_->ScrollBegin(&scroll_state, cc::InputHandler::GESTURE); | 614 input_handler_->ScrollBegin(&scroll_state, cc::InputHandler::GESTURE); |
607 } | 615 } |
608 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", | 616 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", |
609 scroll_status.thread, | 617 scroll_status.thread, |
610 cc::InputHandler::LAST_SCROLL_STATUS + 1); | 618 cc::InputHandler::LAST_SCROLL_STATUS + 1); |
611 | 619 |
612 RecordMainThreadScrollingReasons(gesture_event.type, | 620 RecordMainThreadScrollingReasons(gesture_event.type, |
613 scroll_status.main_thread_scrolling_reasons); | 621 scroll_status.main_thread_scrolling_reasons); |
(...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1296 // trigger a scroll, e.g., with a trivial time delta between fling updates. | 1304 // trigger a scroll, e.g., with a trivial time delta between fling updates. |
1297 // Return true in this case to prevent early fling termination. | 1305 // Return true in this case to prevent early fling termination. |
1298 if (std::abs(clipped_increment.width) < kScrollEpsilon && | 1306 if (std::abs(clipped_increment.width) < kScrollEpsilon && |
1299 std::abs(clipped_increment.height) < kScrollEpsilon) | 1307 std::abs(clipped_increment.height) < kScrollEpsilon) |
1300 return true; | 1308 return true; |
1301 | 1309 |
1302 return did_scroll; | 1310 return did_scroll; |
1303 } | 1311 } |
1304 | 1312 |
1305 } // namespace ui | 1313 } // namespace ui |
OLD | NEW |