blob: 62f0908375b7662d5c47db88ae1e577369f6f429 [file] [log] [blame]
#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)