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

Unified Diff: Source/platform/scroll/ScrollView.h

Issue 191693002: Delay scrollContents until the next paint (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: Source/platform/scroll/ScrollView.h
diff --git a/Source/platform/scroll/ScrollView.h b/Source/platform/scroll/ScrollView.h
index 753c618506af2d37d5fa755974bcac471651e567..3fed1f48602de964785781cef986c5a8392b32cc 100644
--- a/Source/platform/scroll/ScrollView.h
+++ b/Source/platform/scroll/ScrollView.h
@@ -144,6 +144,7 @@ public:
// Functions for querying the current scrolled position (both as a point, a size, or as individual X and Y values).
virtual IntPoint scrollPosition() const OVERRIDE { return visibleContentRect().location(); }
IntSize scrollOffset() const { return toIntSize(visibleContentRect().location()); } // Gets the scrolled position as an IntSize. Convenient for adding to other sizes.
+ IntSize scrollDelta() const { return m_scrollDelta; }
virtual IntPoint maximumScrollPosition() const OVERRIDE; // The maximum position we can be scrolled to.
virtual IntPoint minimumScrollPosition() const OVERRIDE; // The minimum position we can be scrolled to.
// Adjust the passed in scroll position to keep it between the minimum and maximum positions.
@@ -163,6 +164,7 @@ public:
bool scroll(ScrollDirection, ScrollGranularity);
// Scroll the actual contents of the view (either blitting or invalidating as needed).
+ void scrollContentsIfNeeded();
void scrollContents(const IntSize& scrollDelta);
// This gives us a means of blocking painting on our scrollbars until the first layout has occurred.
@@ -295,6 +297,7 @@ private:
HashSet<RefPtr<Widget> > m_children;
+ IntSize m_scrollDelta;
abarth-chromium 2014/03/08 06:54:52 m_pendingScrollDelta? The word "pending" might hi
ykyyip 2014/03/11 01:59:39 Done.
IntSize m_scrollOffset; // FIXME: Would rather store this as a position, but we will wait to make this change until more code is shared.
IntPoint m_cachedScrollPosition;
IntSize m_contentsSize;
@@ -317,6 +320,7 @@ private:
IntRect rectToCopyOnScroll() const;
// Called when the scroll position within this view changes. FrameView overrides this to generate repaint invalidations.
+ virtual void invalidateFixedElementsBeforeScrolling(const IntSize&, const IntRect&) { }
virtual void repaintFixedElementsAfterScrolling() { }
virtual void updateFixedElementsAfterScrolling() { }

Powered by Google App Engine
This is Rietveld 408576698