Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(540)

Side by Side Diff: third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm

Issue 2838513003: ScrollAnimatorMac should post contentAreaScrolled only for explicit scrolls. (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 778 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 void ScrollAnimatorMac::ImmediateScrollTo(const ScrollOffset& new_offset) { 789 void ScrollAnimatorMac::ImmediateScrollTo(const ScrollOffset& new_offset) {
790 ScrollOffset adjusted_offset = AdjustScrollOffsetIfNecessary(new_offset); 790 ScrollOffset adjusted_offset = AdjustScrollOffsetIfNecessary(new_offset);
791 791
792 bool offset_changed = adjusted_offset != current_offset_; 792 bool offset_changed = adjusted_offset != current_offset_;
793 if (!offset_changed && !GetScrollableArea()->ScrollOriginChanged()) 793 if (!offset_changed && !GetScrollableArea()->ScrollOriginChanged())
794 return; 794 return;
795 795
796 ScrollOffset delta = adjusted_offset - current_offset_; 796 ScrollOffset delta = adjusted_offset - current_offset_;
797 797
798 current_offset_ = adjusted_offset; 798 current_offset_ = adjusted_offset;
799 NotifyContentAreaScrolled(delta); 799 NotifyContentAreaScrolled(delta, kUserScroll);
800 NotifyOffsetChanged(); 800 NotifyOffsetChanged();
801 } 801 }
802 802
803 void ScrollAnimatorMac::ImmediateScrollToOffsetForScrollAnimation( 803 void ScrollAnimatorMac::ImmediateScrollToOffsetForScrollAnimation(
804 const ScrollOffset& new_offset) { 804 const ScrollOffset& new_offset) {
805 ASSERT(scroll_animation_helper_); 805 ASSERT(scroll_animation_helper_);
806 ImmediateScrollTo(new_offset); 806 ImmediateScrollTo(new_offset);
807 } 807 }
808 808
809 void ScrollAnimatorMac::ContentAreaWillPaint() const { 809 void ScrollAnimatorMac::ContentAreaWillPaint() const {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 return; 917 return;
918 918
919 ASSERT(horizontal_scrollbar_painter_delegate_); 919 ASSERT(horizontal_scrollbar_painter_delegate_);
920 [horizontal_scrollbar_painter_delegate_.Get() invalidate]; 920 [horizontal_scrollbar_painter_delegate_.Get() invalidate];
921 horizontal_scrollbar_painter_delegate_ = nullptr; 921 horizontal_scrollbar_painter_delegate_ = nullptr;
922 922
923 [painter setDelegate:nil]; 923 [painter setDelegate:nil];
924 [scrollbar_painter_controller_.Get() setHorizontalScrollerImp:nil]; 924 [scrollbar_painter_controller_.Get() setHorizontalScrollerImp:nil];
925 } 925 }
926 926
927 void ScrollAnimatorMac::NotifyContentAreaScrolled(const ScrollOffset& delta) { 927 void ScrollAnimatorMac::NotifyContentAreaScrolled(const ScrollOffset& delta,
928 ScrollType scrollType) {
928 // This function is called when a page is going into the page cache, but the 929 // This function is called when a page is going into the page cache, but the
929 // page 930 // page
930 // isn't really scrolling in that case. We should only pass the message on to 931 // isn't really scrolling in that case. We should only pass the message on to
931 // the 932 // the
932 // ScrollbarPainterController when we're really scrolling on an active page. 933 // ScrollbarPainterController when we're really scrolling on an active page.
933 if (GetScrollableArea()->ScrollbarsCanBeActive()) 934 if (IsExplicitScrollType(scrollType) &&
935 GetScrollableArea()->ScrollbarsCanBeActive())
934 SendContentAreaScrolledSoon(delta); 936 SendContentAreaScrolledSoon(delta);
935 } 937 }
936 938
937 bool ScrollAnimatorMac::SetScrollbarsVisibleForTesting(bool show) { 939 bool ScrollAnimatorMac::SetScrollbarsVisibleForTesting(bool show) {
938 if (show) 940 if (show)
939 [scrollbar_painter_controller_.Get() flashScrollers]; 941 [scrollbar_painter_controller_.Get() flashScrollers];
940 else 942 else
941 [scrollbar_painter_controller_.Get() hideOverlayScrollers]; 943 [scrollbar_painter_controller_.Get() hideOverlayScrollers];
942 944
943 [vertical_scrollbar_painter_delegate_.Get() updateVisibilityImmediately:show]; 945 [vertical_scrollbar_painter_delegate_.Get() updateVisibilityImmediately:show];
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 rect_in_view_coordinates = 1083 rect_in_view_coordinates =
1082 vertical_scrollbar->ConvertToContainingFrameViewBase(scroller_thumb); 1084 vertical_scrollbar->ConvertToContainingFrameViewBase(scroller_thumb);
1083 1085
1084 if (rect_in_view_coordinates == visible_scroller_thumb_rect_) 1086 if (rect_in_view_coordinates == visible_scroller_thumb_rect_)
1085 return; 1087 return;
1086 1088
1087 visible_scroller_thumb_rect_ = rect_in_view_coordinates; 1089 visible_scroller_thumb_rect_ = rect_in_view_coordinates;
1088 } 1090 }
1089 1091
1090 } // namespace blink 1092 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698