1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#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)
|