Chromium Code Reviews| Index: cc/input/scrollbar_animation_controller.cc |
| diff --git a/cc/input/scrollbar_animation_controller.cc b/cc/input/scrollbar_animation_controller.cc |
| index f3f1a48121f113abcdb926d304e04dee22d948b0..b9397ed68a0fd3a278c2d6fd2122488c9af86097 100644 |
| --- a/cc/input/scrollbar_animation_controller.cc |
| +++ b/cc/input/scrollbar_animation_controller.cc |
| @@ -46,7 +46,7 @@ ScrollbarAnimationController::ScrollbarAnimationController( |
| fade_delay_(fade_delay), |
| fade_out_resize_delay_(fade_out_resize_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), |
| @@ -70,7 +70,7 @@ ScrollbarAnimationController::ScrollbarAnimationController( |
| fade_delay_(fade_delay), |
| fade_out_resize_delay_(fade_out_resize_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), |
| @@ -86,6 +86,7 @@ ScrollbarAnimationController::ScrollbarAnimationController( |
| horizontal_controller_ = SingleScrollbarAnimationControllerThinning::Create( |
| scroll_element_id, ScrollbarOrientation::HORIZONTAL, client, |
| thinning_duration); |
| + |
| ApplyOpacityToScrollbars(0.0f); |
| } |
| @@ -273,7 +274,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; |
| @@ -281,25 +282,28 @@ void ScrollbarAnimationController::DidMouseLeave() { |
| PostDelayedAnimation(FADE_OUT, false); |
| } |
| -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); |
| + const ScrollbarOrientation orientations[] = {HORIZONTAL, VERTICAL}; |
|
bokan
2017/04/28 18:08:11
No need for loop, just:
vertical_controller_->Di
|
| + for (ScrollbarOrientation orientation : orientations) { |
| + GetScrollbarAnimationController(orientation) |
| + .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, false); |
| } else { |
| delayed_scrollbar_animation_.Cancel(); |
| @@ -315,42 +319,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 { |
| @@ -359,7 +352,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() { |