Bug 885277 - Fix animation timing and resetAnimation in the presence of changing animationMode. r=seth

This commit is contained in:
Simon Lindholm 2013-09-03 13:20:15 -07:00
Родитель 416a7ac462
Коммит 5c911188e0
1 изменённых файлов: 9 добавлений и 7 удалений

Просмотреть файл

@ -529,12 +529,12 @@ RasterImage::Init(const char* aMimeType,
NS_IMETHODIMP_(void)
RasterImage::RequestRefresh(const mozilla::TimeStamp& aTime)
{
if (!ShouldAnimate()) {
EvaluateAnimation();
if (!mAnimating) {
return;
}
EvaluateAnimation();
FrameAnimator::RefreshResult res;
if (mAnim) {
res = mAnim->RequestRefresh(aTime);
@ -1457,6 +1457,8 @@ RasterImage::StopAnimation()
if (mError)
return NS_ERROR_FAILURE;
mAnim->SetAnimationFrameTime(TimeStamp());
return NS_OK;
}
@ -1487,8 +1489,8 @@ RasterImage::ResetAnimation()
// Note - We probably want to kick off a redecode somewhere around here when
// we fix bug 500402.
// Update display if we were animating before
if (mAnimating && mStatusTracker) {
// Update display
if (mStatusTracker) {
nsIntRect rect = mAnim->GetFirstFrameRefreshArea();
mStatusTracker->FrameChanged(&rect);
}
@ -1505,11 +1507,11 @@ RasterImage::ResetAnimation()
}
//******************************************************************************
// [notxpcom] void requestRefresh ([const] in TimeStamp aTime);
// [notxpcom] void setAnimationStartTime ([const] in TimeStamp aTime);
NS_IMETHODIMP_(void)
RasterImage::SetAnimationStartTime(const mozilla::TimeStamp& aTime)
{
if (mError || mAnimating || !mAnim)
if (mError || mAnimationMode == kDontAnimMode || mAnimating || !mAnim)
return;
mAnim->SetAnimationFrameTime(aTime);