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

Unified Diff: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h

Issue 2383113003: Refactor ScrollableArea::setScrollPosition. (Closed)
Patch Set: Created 4 years, 2 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: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
index 7f1f1ea597075844a9a3a614a7a1dc63580c6326..bf2766edf1621bba431d124f46d26e1ef88a3701 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
+++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
@@ -310,50 +310,24 @@ class CORE_EXPORT PaintLayerScrollableArea final
ScrollBehavior scrollBehaviorStyle() const override;
CompositorAnimationTimeline* compositorAnimationTimeline() const override;
- double scrollXOffset() const {
- return m_scrollOffset.width() + scrollOrigin().x();
- }
- double scrollYOffset() const {
- return m_scrollOffset.height() + scrollOrigin().y();
- }
-
- DoubleSize scrollOffset() const { return m_scrollOffset; }
-
// FIXME: We shouldn't allow access to m_overflowRect outside this class.
LayoutRect overflowRect() const { return m_overflowRect; }
- void scrollToPosition(const DoublePoint& scrollPosition,
- ScrollOffsetClamping = ScrollOffsetUnclamped,
- ScrollBehavior = ScrollBehaviorInstant,
- ScrollType = ProgrammaticScroll);
-
- void scrollToOffset(const DoubleSize& scrollOffset,
- ScrollOffsetClamping clamp = ScrollOffsetUnclamped,
- ScrollBehavior scrollBehavior = ScrollBehaviorInstant,
- ScrollType scrollType = ProgrammaticScroll) {
- scrollToPosition(-scrollOrigin() + scrollOffset, clamp, scrollBehavior,
- scrollType);
- }
-
- void scrollToXOffset(double x,
- ScrollOffsetClamping clamp = ScrollOffsetUnclamped,
- ScrollBehavior scrollBehavior = ScrollBehaviorInstant) {
- scrollToOffset(DoubleSize(x, scrollYOffset()), clamp, scrollBehavior);
+ DoubleSize offsetFromOrigin() const {
bokan 2016/10/01 20:32:47 I find this naming to be confusing, I think what t
szager1 2016/10/02 19:35:28 In discussion with skobes, we had different ideas
+ return toDoubleSize(DoublePoint(scrollOrigin())) + m_scrollPosition;
}
-
- void scrollToYOffset(double y,
- ScrollOffsetClamping clamp = ScrollOffsetUnclamped,
- ScrollBehavior scrollBehavior = ScrollBehaviorInstant) {
- scrollToOffset(DoubleSize(scrollXOffset(), y), clamp, scrollBehavior);
+ void scrollToOffsetFromOrigin(
+ const DoubleSize& scrollOffset,
+ ScrollBehavior scrollBehavior = ScrollBehaviorInstant,
+ ScrollType scrollType = ProgrammaticScroll) {
+ setScrollPosition(-scrollOrigin() + scrollOffset, scrollType,
+ scrollBehavior);
}
- void setScrollPosition(
- const DoublePoint& position,
- ScrollType scrollType,
- ScrollBehavior scrollBehavior = ScrollBehaviorInstant) override {
- scrollToOffset(toDoubleSize(position), ScrollOffsetClamped, scrollBehavior,
- scrollType);
- }
+ // This will set the scroll position without clamping, and it will do all post-update
+ // work even if the scroll position didn't change.
+ void setScrollPositionUnconditionally(const DoublePoint&,
+ ScrollType = ProgrammaticScroll);
// TODO(szager): Actually run these after all of layout is finished. Currently, they
// run at the end of box()'es layout (or after all flexbox layout has finished) but while
@@ -395,10 +369,6 @@ class CORE_EXPORT PaintLayerScrollableArea final
int horizontalScrollbarHeight(
OverlayScrollbarClipBehavior = IgnoreOverlayScrollbarSize) const;
- DoubleSize adjustedScrollOffset() const {
- return DoubleSize(scrollXOffset(), scrollYOffset());
- }
-
void positionOverflowControls();
// isPointInResizeControl() is used for testing if a pointer/touch position is in the resize control
@@ -526,7 +496,7 @@ class CORE_EXPORT PaintLayerScrollableArea final
void updateScrollOrigin();
void updateScrollDimensions();
- void setScrollOffset(const DoublePoint&, ScrollType) override;
+ void updateScrollPosition(const DoublePoint&, ScrollType) override;
int verticalScrollbarStart(int minX, int maxX) const;
int horizontalScrollbarStart(int minX) const;
@@ -588,8 +558,8 @@ class CORE_EXPORT PaintLayerScrollableArea final
// ScrollbarManager holds the Scrollbar instances.
ScrollbarManager m_scrollbarManager;
- // This is the (scroll) offset from scrollOrigin().
- DoubleSize m_scrollOffset;
+ // This is the absolute scroll position, *not* relative to m_scrollOrigin.
bokan 2016/10/01 20:32:47 Ok, I think I'm missing something. Absolute would
szager1 2016/10/02 19:35:28 Yeah, this is a bad comment; I changed it.
+ DoubleSize m_scrollPosition;
IntPoint m_cachedOverlayScrollbarOffset;

Powered by Google App Engine
This is Rietveld 408576698