| Index: cc/input/scrollbar_animation_controller.cc
|
| diff --git a/cc/input/scrollbar_animation_controller.cc b/cc/input/scrollbar_animation_controller.cc
|
| index 2812a2cb53ef986c3ac85d67cc8beea51b455b9a..14dfe30a5ef5312c4bc693260022cea074e493c5 100644
|
| --- a/cc/input/scrollbar_animation_controller.cc
|
| +++ b/cc/input/scrollbar_animation_controller.cc
|
| @@ -40,7 +40,7 @@ ScrollbarAnimationController::ScrollbarAnimationController(
|
| : client_(client),
|
| fade_delay_(fade_delay),
|
| fade_duration_(fade_duration),
|
| - need_trigger_scrollbar_show_(false),
|
| + need_trigger_scrollbar_fade_in_(false),
|
| is_animating_(false),
|
| animation_change_(NONE),
|
| scroll_element_id_(scroll_element_id),
|
| @@ -62,7 +62,7 @@ ScrollbarAnimationController::ScrollbarAnimationController(
|
| : client_(client),
|
| fade_delay_(fade_delay),
|
| fade_duration_(fade_duration),
|
| - need_trigger_scrollbar_show_(false),
|
| + need_trigger_scrollbar_fade_in_(false),
|
| is_animating_(false),
|
| animation_change_(NONE),
|
| scroll_element_id_(scroll_element_id),
|
| @@ -78,6 +78,7 @@ ScrollbarAnimationController::ScrollbarAnimationController(
|
| horizontal_controller_ = SingleScrollbarAnimationControllerThinning::Create(
|
| scroll_element_id, ScrollbarOrientation::HORIZONTAL, client,
|
| thinning_duration);
|
| +
|
| ApplyOpacityToScrollbars(0.0f);
|
| }
|
|
|
| @@ -248,7 +249,7 @@ void ScrollbarAnimationController::DidMouseLeave() {
|
| horizontal_controller_->DidMouseLeave();
|
|
|
| delayed_scrollbar_animation_.Cancel();
|
| - need_trigger_scrollbar_show_ = false;
|
| + need_trigger_scrollbar_fade_in_ = false;
|
|
|
| if (ScrollbarsHidden() || Captured())
|
| return;
|
| @@ -256,25 +257,25 @@ void ScrollbarAnimationController::DidMouseLeave() {
|
| PostDelayedAnimation(FADE_OUT);
|
| }
|
|
|
| -void ScrollbarAnimationController::DidMouseMoveNear(
|
| - ScrollbarOrientation orientation,
|
| - float distance) {
|
| +void ScrollbarAnimationController::DidMouseMove(
|
| + const gfx::PointF& device_viewport_point) {
|
| if (!need_thinning_animation_)
|
| return;
|
|
|
| - bool need_trigger_scrollbar_show_before = need_trigger_scrollbar_show_;
|
| + bool need_trigger_scrollbar_fade_in_before = need_trigger_scrollbar_fade_in_;
|
|
|
| - GetScrollbarAnimationController(orientation).DidMouseMoveNear(distance);
|
| + vertical_controller_->DidMouseMove(device_viewport_point);
|
| + horizontal_controller_->DidMouseMove(device_viewport_point);
|
|
|
| - need_trigger_scrollbar_show_ =
|
| - CalcNeedTriggerScrollbarShow(orientation, distance);
|
| + need_trigger_scrollbar_fade_in_ = MouseIsNearAnyScrollbar();
|
|
|
| if (Captured())
|
| return;
|
|
|
| if (ScrollbarsHidden()) {
|
| - if (need_trigger_scrollbar_show_before != need_trigger_scrollbar_show_) {
|
| - if (need_trigger_scrollbar_show_) {
|
| + if (need_trigger_scrollbar_fade_in_before !=
|
| + need_trigger_scrollbar_fade_in_) {
|
| + if (need_trigger_scrollbar_fade_in_) {
|
| PostDelayedAnimation(FADE_IN);
|
| } else {
|
| delayed_scrollbar_animation_.Cancel();
|
| @@ -290,42 +291,31 @@ void ScrollbarAnimationController::DidMouseMoveNear(
|
| }
|
| }
|
|
|
| -bool ScrollbarAnimationController::CalcNeedTriggerScrollbarShow(
|
| - ScrollbarOrientation orientation,
|
| - float distance) const {
|
| +bool ScrollbarAnimationController::MouseIsOverScrollbarThumb(
|
| + ScrollbarOrientation orientation) const {
|
| DCHECK(need_thinning_animation_);
|
| -
|
| - if (vertical_controller_->mouse_is_over_scrollbar() ||
|
| - horizontal_controller_->mouse_is_over_scrollbar())
|
| - return true;
|
| -
|
| - for (ScrollbarLayerImplBase* scrollbar : Scrollbars()) {
|
| - if (scrollbar->orientation() != orientation)
|
| - continue;
|
| -
|
| - if (distance < kMouseMoveDistanceToTriggerFadeIn)
|
| - return true;
|
| - }
|
| -
|
| - return false;
|
| + return GetScrollbarAnimationController(orientation)
|
| + .mouse_is_over_scrollbar_thumb();
|
| }
|
|
|
| -bool ScrollbarAnimationController::MouseIsOverScrollbar(
|
| +bool ScrollbarAnimationController::MouseIsNearScrollbarThumb(
|
| ScrollbarOrientation orientation) const {
|
| DCHECK(need_thinning_animation_);
|
| - return GetScrollbarAnimationController(orientation).mouse_is_over_scrollbar();
|
| + return GetScrollbarAnimationController(orientation)
|
| + .mouse_is_near_scrollbar_thumb();
|
| }
|
|
|
| bool ScrollbarAnimationController::MouseIsNearScrollbar(
|
| ScrollbarOrientation orientation) const {
|
| DCHECK(need_thinning_animation_);
|
| - return GetScrollbarAnimationController(orientation).mouse_is_near_scrollbar();
|
| + return GetScrollbarAnimationController(orientation)
|
| + .mouse_is_near_scrollbar_track();
|
| }
|
|
|
| bool ScrollbarAnimationController::MouseIsNearAnyScrollbar() const {
|
| DCHECK(need_thinning_animation_);
|
| - return vertical_controller_->mouse_is_near_scrollbar() ||
|
| - horizontal_controller_->mouse_is_near_scrollbar();
|
| + return vertical_controller_->mouse_is_near_scrollbar_track() ||
|
| + horizontal_controller_->mouse_is_near_scrollbar_track();
|
| }
|
|
|
| bool ScrollbarAnimationController::ScrollbarsHidden() const {
|
| @@ -334,7 +324,8 @@ bool ScrollbarAnimationController::ScrollbarsHidden() const {
|
|
|
| bool ScrollbarAnimationController::Captured() const {
|
| DCHECK(need_thinning_animation_);
|
| - return vertical_controller_->captured() || horizontal_controller_->captured();
|
| + return GetScrollbarAnimationController(VERTICAL).captured() ||
|
| + GetScrollbarAnimationController(HORIZONTAL).captured();
|
| }
|
|
|
| void ScrollbarAnimationController::Show() {
|
| @@ -344,8 +335,7 @@ void ScrollbarAnimationController::Show() {
|
|
|
| void ScrollbarAnimationController::ApplyOpacityToScrollbars(float opacity) {
|
| for (ScrollbarLayerImplBase* scrollbar : Scrollbars()) {
|
| - if (!scrollbar->is_overlay_scrollbar())
|
| - continue;
|
| + DCHECK(scrollbar->is_overlay_scrollbar());
|
| float effective_opacity = scrollbar->CanScrollOrientation() ? opacity : 0;
|
| scrollbar->SetOverlayScrollbarLayerOpacityAnimated(effective_opacity);
|
| }
|
|
|