diff options
Diffstat (limited to 'Source/WebCore/platform/mac/ScrollAnimatorMac.mm')
-rw-r--r-- | Source/WebCore/platform/mac/ScrollAnimatorMac.mm | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/Source/WebCore/platform/mac/ScrollAnimatorMac.mm b/Source/WebCore/platform/mac/ScrollAnimatorMac.mm index ca71bd3..59b333b 100644 --- a/Source/WebCore/platform/mac/ScrollAnimatorMac.mm +++ b/Source/WebCore/platform/mac/ScrollAnimatorMac.mm @@ -28,7 +28,10 @@ #if ENABLE(SMOOTH_SCROLLING) #include "ScrollAnimatorMac.h" -#include "ScrollbarClient.h" + +#include "FloatPoint.h" +#include "ScrollableArea.h" +#include <wtf/PassOwnPtr.h> @interface NSObject (NSScrollAnimationHelperDetails) - (id)initWithDelegate:(id)delegate; @@ -121,13 +124,13 @@ static NSSize abs(NSSize size) namespace WebCore { -ScrollAnimator* ScrollAnimator::create(ScrollbarClient* client) +PassOwnPtr<ScrollAnimator> ScrollAnimator::create(ScrollableArea* scrollableArea) { - return new ScrollAnimatorMac(client); + return adoptPtr(new ScrollAnimatorMac(scrollableArea)); } -ScrollAnimatorMac::ScrollAnimatorMac(ScrollbarClient* client) - : ScrollAnimator(client) +ScrollAnimatorMac::ScrollAnimatorMac(ScrollableArea* scrollableArea) + : ScrollAnimator(scrollableArea) { m_scrollAnimationHelperDelegate.adoptNS([[ScrollAnimationHelperDelegate alloc] initWithScrollAnimator:this]); m_scrollAnimationHelper.adoptNS([[NSClassFromString(@"NSScrollAnimationHelper") alloc] initWithDelegate:m_scrollAnimationHelperDelegate.get()]); @@ -146,7 +149,7 @@ bool ScrollAnimatorMac::scroll(ScrollbarOrientation orientation, ScrollGranulari return ScrollAnimator::scroll(orientation, granularity, step, multiplier); float currentPos = orientation == HorizontalScrollbar ? m_currentPosX : m_currentPosY; - float newPos = std::max<float>(std::min<float>(currentPos + (step * multiplier), static_cast<float>(m_client->scrollSize(orientation))), 0); + float newPos = std::max<float>(std::min<float>(currentPos + (step * multiplier), static_cast<float>(m_scrollableArea->scrollSize(orientation))), 0); if (currentPos == newPos) return false; @@ -161,23 +164,17 @@ bool ScrollAnimatorMac::scroll(ScrollbarOrientation orientation, ScrollGranulari return true; } -void ScrollAnimatorMac::setScrollPositionAndStopAnimation(ScrollbarOrientation orientation, float pos) +void ScrollAnimatorMac::scrollToOffsetWithoutAnimation(const FloatPoint& offset) { [m_scrollAnimationHelper.get() _stopRun]; - ScrollAnimator::setScrollPositionAndStopAnimation(orientation, pos); -} - -FloatPoint ScrollAnimatorMac::currentPosition() const -{ - return FloatPoint(m_currentPosX, m_currentPosY); + ScrollAnimator::scrollToOffsetWithoutAnimation(offset); } void ScrollAnimatorMac::immediateScrollToPoint(const FloatPoint& newPosition) { m_currentPosX = newPosition.x(); m_currentPosY = newPosition.y(); - - m_client->setScrollOffsetFromAnimation(IntPoint(m_currentPosX, m_currentPosY)); + notityPositionChanged(); } } // namespace WebCore |