ScrollAnimatorBlackBerry.cpp   [plain text]



#include "config.h"

#if ENABLE(SMOOTH_SCROLLING)

#include "ScrollAnimatorBlackBerry.h"

#include "ScrollableArea.h"
#include <wtf/PassOwnPtr.h>

namespace WebCore {

PassOwnPtr<ScrollAnimator> ScrollAnimator::create(ScrollableArea* scrollableArea)
{
    if (scrollableArea && scrollableArea->scrollAnimatorEnabled())
        return adoptPtr(new ScrollAnimatorBlackBerry(scrollableArea));
    return adoptPtr(new ScrollAnimator(scrollableArea));
}

ScrollAnimatorBlackBerry::ScrollAnimatorBlackBerry(ScrollableArea* scrollableArea)
    : ScrollAnimatorNone(scrollableArea)
    , m_disableConstrainsScrollingToContentEdgeWhileAnimating(false)
    , m_originalConstransScrollingToContentEdge(true)
{
}

void ScrollAnimatorBlackBerry::animationWillStart()
{
    if (m_disableConstrainsScrollingToContentEdgeWhileAnimating) {
        m_originalConstransScrollingToContentEdge = scrollableArea()->constrainsScrollingToContentEdge();
        scrollableArea()->setConstrainsScrollingToContentEdge(false);
    }
}

void ScrollAnimatorBlackBerry::animationDidFinish()
{
    if (m_disableConstrainsScrollingToContentEdgeWhileAnimating) {
        scrollableArea()->setConstrainsScrollingToContentEdge(m_originalConstransScrollingToContentEdge);
        m_disableConstrainsScrollingToContentEdgeWhileAnimating = false;
    }
}

void ScrollAnimatorBlackBerry::setDisableConstrainsScrollingToContentEdgeWhileAnimating(bool value)
{
    m_disableConstrainsScrollingToContentEdgeWhileAnimating = value;
}

} // namespace WebCore

#endif // ENABLE(SMOOTH_SCROLLING)