| Index: Source/platform/scroll/Scrollbar.cpp
|
| diff --git a/Source/platform/scroll/Scrollbar.cpp b/Source/platform/scroll/Scrollbar.cpp
|
| index 96b5f79c464d7bc95264e673f493a4a203a6ad2d..3b73679af59b2263f366bf3a4fe55464773deb64 100644
|
| --- a/Source/platform/scroll/Scrollbar.cpp
|
| +++ b/Source/platform/scroll/Scrollbar.cpp
|
| @@ -43,9 +43,9 @@
|
|
|
| namespace blink {
|
|
|
| -PassRefPtr<Scrollbar> Scrollbar::create(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize size)
|
| +PassRefPtrWillBeRawPtr<Scrollbar> Scrollbar::create(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize size)
|
| {
|
| - return adoptRef(new Scrollbar(scrollableArea, orientation, size));
|
| + return adoptRefWillBeNoop(new Scrollbar(scrollableArea, orientation, size));
|
| }
|
|
|
| Scrollbar::Scrollbar(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize controlSize, ScrollbarTheme* theme)
|
| @@ -81,6 +81,11 @@ Scrollbar::Scrollbar(ScrollableArea* scrollableArea, ScrollbarOrientation orient
|
| Widget::setFrameRect(IntRect(0, 0, thickness, thickness));
|
|
|
| m_currentPos = scrollableAreaCurrentPos();
|
| +
|
| +#if ENABLE(OILPAN)
|
| + if (m_scrollableArea)
|
| + m_animator = m_scrollableArea->scrollAnimator();
|
| +#endif
|
| }
|
|
|
| Scrollbar::~Scrollbar()
|
| @@ -88,6 +93,17 @@ Scrollbar::~Scrollbar()
|
| stopTimerIfNeeded();
|
|
|
| m_theme->unregisterScrollbar(this);
|
| +
|
| +#if ENABLE(OILPAN)
|
| + if (!m_animator)
|
| + return;
|
| +
|
| + ASSERT(m_scrollableArea);
|
| + if (m_orientation == VerticalScrollbar)
|
| + m_animator->willRemoveVerticalScrollbar(this);
|
| + else
|
| + m_animator->willRemoveHorizontalScrollbar(this);
|
| +#endif
|
| }
|
|
|
| void Scrollbar::removeFromParent()
|
| @@ -144,6 +160,14 @@ void Scrollbar::offsetDidChange()
|
| setPressedPos(m_pressedPos + theme()->thumbPosition(this) - oldThumbPosition);
|
| }
|
|
|
| +void Scrollbar::disconnectFromScrollableArea()
|
| +{
|
| + m_scrollableArea = nullptr;
|
| +#if ENABLE(OILPAN)
|
| + m_animator = nullptr;
|
| +#endif
|
| +}
|
| +
|
| void Scrollbar::setProportion(int visibleSize, int totalSize)
|
| {
|
| if (visibleSize == m_visibleSize && totalSize == m_totalSize)
|
|
|