Bug 594267. Don't call WillPaint on hidden documents. r=bzbarsky a=roc

This commit is contained in:
Timothy Nikkel 2010-09-11 13:24:50 -05:00
parent bb07e18e5b
commit 5be08ac8ee
2 changed files with 10 additions and 8 deletions

View File

@ -7189,9 +7189,9 @@ PresShell::ShouldIgnoreInvalidation()
NS_IMETHODIMP_(void)
PresShell::WillPaint(PRBool aWillSendDidPaint)
{
// Don't bother doing anything if some viewmanager in our tree is
// painting while we still have painting suppressed.
if (mPaintingSuppressed) {
// Don't bother doing anything if some viewmanager in our tree is painting
// while we still have painting suppressed or we are not active.
if (mPaintingSuppressed || !mIsActive) {
return;
}

View File

@ -1659,11 +1659,13 @@ nsViewManager::CallWillPaintOnObservers(PRBool aWillSendDidPaint)
nsViewManager* vm = (nsViewManager*)gViewManagers->ElementAt(index);
if (vm->RootViewManager() == this) {
// One of our kids.
nsCOMPtr<nsIViewObserver> obs = vm->GetViewObserver();
if (obs) {
obs->WillPaint(aWillSendDidPaint);
NS_ASSERTION(mUpdateBatchCnt == savedUpdateBatchCnt,
"Observer did not end view batch?");
if (vm->mRootView && vm->mRootView->IsEffectivelyVisible()) {
nsCOMPtr<nsIViewObserver> obs = vm->GetViewObserver();
if (obs) {
obs->WillPaint(aWillSendDidPaint);
NS_ASSERTION(mUpdateBatchCnt == savedUpdateBatchCnt,
"Observer did not end view batch?");
}
}
}
}