зеркало из https://github.com/mozilla/gecko-dev.git
Bug 885277 - Fix animation timing and resetAnimation in the presence of changing animationMode. r=seth
This commit is contained in:
Родитель
416a7ac462
Коммит
5c911188e0
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче