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

Unified Diff: third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp

Issue 1511003003: Use refs for non-null GraphicsContext, Scrollbar, etc. in scrollbar related code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ScrollbarRemove
Patch Set: yet another mac fix Created 5 years 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/platform/scroll/ScrollableArea.cpp
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
index 5b9880da1de221909a6418e50b6d87150edbf9a0..9768a4e66bc8573ec6f2f0f31419c83faa4ed4ae 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
@@ -73,7 +73,7 @@ float ScrollableArea::minFractionToStepWhenPaging()
int ScrollableArea::maxOverlapBetweenPages()
{
- static int maxOverlapBetweenPages = ScrollbarTheme::theme()->maxOverlapBetweenPages();
+ static int maxOverlapBetweenPages = ScrollbarTheme::theme().maxOverlapBetweenPages();
return maxOverlapBetweenPages;
}
@@ -101,20 +101,20 @@ void ScrollableArea::clearScrollAnimators()
m_programmaticScrollAnimator.clear();
}
-ScrollAnimatorBase* ScrollableArea::scrollAnimator() const
+ScrollAnimatorBase& ScrollableArea::scrollAnimator() const
{
if (!m_scrollAnimator)
m_scrollAnimator = ScrollAnimatorBase::create(const_cast<ScrollableArea*>(this));
- return m_scrollAnimator.get();
+ return *m_scrollAnimator;
}
-ProgrammaticScrollAnimator* ScrollableArea::programmaticScrollAnimator() const
+ProgrammaticScrollAnimator& ScrollableArea::programmaticScrollAnimator() const
{
if (!m_programmaticScrollAnimator)
m_programmaticScrollAnimator = ProgrammaticScrollAnimator::create(const_cast<ScrollableArea*>(this));
- return m_programmaticScrollAnimator.get();
+ return *m_programmaticScrollAnimator;
}
void ScrollableArea::setScrollOrigin(const IntPoint& origin)
@@ -163,7 +163,7 @@ ScrollResultOneDimensional ScrollableArea::userScroll(ScrollDirectionPhysical di
if (direction == ScrollUp || direction == ScrollLeft)
delta = -delta;
- return scrollAnimator()->userScroll(orientation, granularity, step, delta);
+ return scrollAnimator().userScroll(orientation, granularity, step, delta);
}
void ScrollableArea::setScrollPosition(const DoublePoint& position, ScrollType scrollType, ScrollBehavior behavior)
@@ -190,9 +190,9 @@ void ScrollableArea::setScrollPositionSingleAxis(ScrollbarOrientation orientatio
{
DoublePoint newPosition;
if (orientation == HorizontalScrollbar)
- newPosition = DoublePoint(position, scrollAnimator()->currentPosition().y());
+ newPosition = DoublePoint(position, scrollAnimator().currentPosition().y());
else
- newPosition = DoublePoint(scrollAnimator()->currentPosition().x(), position);
+ newPosition = DoublePoint(scrollAnimator().currentPosition().x(), position);
// TODO(bokan): Note, this doesn't use the derived class versions since this method is currently used
// exclusively by code that adjusts the position by the scroll origin and the derived class versions
@@ -205,24 +205,24 @@ void ScrollableArea::programmaticScrollHelper(const DoublePoint& position, Scrol
cancelScrollAnimation();
if (scrollBehavior == ScrollBehaviorSmooth)
- programmaticScrollAnimator()->animateToOffset(toFloatPoint(position));
+ programmaticScrollAnimator().animateToOffset(toFloatPoint(position));
else
- programmaticScrollAnimator()->scrollToOffsetWithoutAnimation(toFloatPoint(position));
+ programmaticScrollAnimator().scrollToOffsetWithoutAnimation(toFloatPoint(position));
}
void ScrollableArea::userScrollHelper(const DoublePoint& position, ScrollBehavior scrollBehavior)
{
cancelProgrammaticScrollAnimation();
- double x = userInputScrollable(HorizontalScrollbar) ? position.x() : scrollAnimator()->currentPosition().x();
- double y = userInputScrollable(VerticalScrollbar) ? position.y() : scrollAnimator()->currentPosition().y();
+ double x = userInputScrollable(HorizontalScrollbar) ? position.x() : scrollAnimator().currentPosition().x();
+ double y = userInputScrollable(VerticalScrollbar) ? position.y() : scrollAnimator().currentPosition().y();
// Smooth user scrolls (keyboard, wheel clicks) are handled via the userScroll method.
// TODO(bokan): The userScroll method should probably be modified to call this method
// and ScrollAnimatorBase to have a simpler animateToOffset method like the
// ProgrammaticScrollAnimator.
ASSERT(scrollBehavior == ScrollBehaviorInstant);
- scrollAnimator()->scrollToOffsetWithoutAnimation(FloatPoint(x, y));
+ scrollAnimator().scrollToOffsetWithoutAnimation(FloatPoint(x, y));
}
LayoutRect ScrollableArea::scrollIntoView(const LayoutRect& rectInContent, const ScrollAlignment& alignX, const ScrollAlignment& alignY, ScrollType)
@@ -248,20 +248,20 @@ void ScrollableArea::scrollPositionChanged(const DoublePoint& position, ScrollTy
if (Scrollbar* horizontalScrollbar = this->horizontalScrollbar()) {
horizontalScrollbar->offsetDidChange();
if (horizontalScrollbar->isOverlayScrollbar() && !hasLayerForHorizontalScrollbar())
- setScrollbarNeedsPaintInvalidation(horizontalScrollbar);
+ setScrollbarNeedsPaintInvalidation(HorizontalScrollbar);
}
if (verticalScrollbar) {
verticalScrollbar->offsetDidChange();
if (verticalScrollbar->isOverlayScrollbar() && !hasLayerForVerticalScrollbar())
- setScrollbarNeedsPaintInvalidation(verticalScrollbar);
+ setScrollbarNeedsPaintInvalidation(VerticalScrollbar);
}
if (scrollPositionDouble() != oldPosition) {
// FIXME: Pass in DoubleSize. crbug.com/414283.
- scrollAnimator()->notifyContentAreaScrolled(toFloatSize(scrollPositionDouble() - oldPosition));
+ scrollAnimator().notifyContentAreaScrolled(toFloatSize(scrollPositionDouble() - oldPosition));
}
- scrollAnimator()->setCurrentPosition(toFloatPoint(position));
+ scrollAnimator().setCurrentPosition(toFloatPoint(position));
}
bool ScrollableArea::scrollBehaviorFromString(const String& behaviorString, ScrollBehavior& behavior)
@@ -326,14 +326,14 @@ void ScrollableArea::mouseMovedInContentArea() const
scrollAnimator->mouseMovedInContentArea();
}
-void ScrollableArea::mouseEnteredScrollbar(Scrollbar* scrollbar) const
+void ScrollableArea::mouseEnteredScrollbar(Scrollbar& scrollbar) const
{
- scrollAnimator()->mouseEnteredScrollbar(scrollbar);
+ scrollAnimator().mouseEnteredScrollbar(scrollbar);
}
-void ScrollableArea::mouseExitedScrollbar(Scrollbar* scrollbar) const
+void ScrollableArea::mouseExitedScrollbar(Scrollbar& scrollbar) const
{
- scrollAnimator()->mouseExitedScrollbar(scrollbar);
+ scrollAnimator().mouseExitedScrollbar(scrollbar);
}
void ScrollableArea::contentAreaDidShow() const
@@ -354,23 +354,23 @@ void ScrollableArea::finishCurrentScrollAnimations() const
scrollAnimator->finishCurrentScrollAnimations();
}
-void ScrollableArea::didAddScrollbar(Scrollbar* scrollbar, ScrollbarOrientation orientation)
+void ScrollableArea::didAddScrollbar(Scrollbar& scrollbar, ScrollbarOrientation orientation)
{
if (orientation == VerticalScrollbar)
- scrollAnimator()->didAddVerticalScrollbar(scrollbar);
+ scrollAnimator().didAddVerticalScrollbar(scrollbar);
else
- scrollAnimator()->didAddHorizontalScrollbar(scrollbar);
+ scrollAnimator().didAddHorizontalScrollbar(scrollbar);
// <rdar://problem/9797253> AppKit resets the scrollbar's style when you attach a scrollbar
setScrollbarOverlayStyle(scrollbarOverlayStyle());
}
-void ScrollableArea::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation orientation)
+void ScrollableArea::willRemoveScrollbar(Scrollbar& scrollbar, ScrollbarOrientation orientation)
{
if (orientation == VerticalScrollbar)
- scrollAnimator()->willRemoveVerticalScrollbar(scrollbar);
+ scrollAnimator().willRemoveVerticalScrollbar(scrollbar);
else
- scrollAnimator()->willRemoveHorizontalScrollbar(scrollbar);
+ scrollAnimator().willRemoveHorizontalScrollbar(scrollbar);
}
void ScrollableArea::contentsResized()
@@ -393,30 +393,24 @@ void ScrollableArea::setScrollbarOverlayStyle(ScrollbarOverlayStyle overlayStyle
m_scrollbarOverlayStyle = overlayStyle;
if (Scrollbar* scrollbar = horizontalScrollbar()) {
- ScrollbarTheme::theme()->updateScrollbarOverlayStyle(scrollbar);
- setScrollbarNeedsPaintInvalidation(scrollbar);
+ ScrollbarTheme::theme().updateScrollbarOverlayStyle(*scrollbar);
+ setScrollbarNeedsPaintInvalidation(HorizontalScrollbar);
}
if (Scrollbar* scrollbar = verticalScrollbar()) {
- ScrollbarTheme::theme()->updateScrollbarOverlayStyle(scrollbar);
- setScrollbarNeedsPaintInvalidation(scrollbar);
+ ScrollbarTheme::theme().updateScrollbarOverlayStyle(*scrollbar);
+ setScrollbarNeedsPaintInvalidation(VerticalScrollbar);
}
}
-void ScrollableArea::setScrollbarNeedsPaintInvalidation(Scrollbar* scrollbar)
+void ScrollableArea::setScrollbarNeedsPaintInvalidation(ScrollbarOrientation orientation)
{
- if (scrollbar == horizontalScrollbar()) {
+ if (orientation == HorizontalScrollbar)
m_horizontalScrollbarNeedsPaintInvalidation = true;
- scrollControlWasSetNeedsPaintInvalidation();
- return;
- }
- if (scrollbar == verticalScrollbar()) {
+ else
m_verticalScrollbarNeedsPaintInvalidation = true;
- scrollControlWasSetNeedsPaintInvalidation();
- return;
- }
- // Otherwise the scrollbar is just created and has not been set as either
- // horizontalScrollbar() or verticalScrollbar().
+
+ scrollControlWasSetNeedsPaintInvalidation();
}
void ScrollableArea::setScrollCornerNeedsPaintInvalidation()

Powered by Google App Engine
This is Rietveld 408576698