Bug 787300 - Fix various bugs with refresh-driver-painting.enabled=false. r=roc

This commit is contained in:
Matt Woodrow 2012-09-12 09:17:26 +12:00
parent 087d06c226
commit f798f0a97a
2 changed files with 8 additions and 3 deletions

View File

@ -5301,7 +5301,7 @@ PresShell::Paint(nsIView* aViewToPaint,
NS_WARNING("Must complete empty transaction when compositing!");
} else if (!(frame->GetStateBits() & NS_FRAME_UPDATE_LAYER_TREE)) {
layerManager->BeginTransaction();
if (layerManager->EndEmptyTransaction(LayerManager::END_NO_COMPOSITE)) {
if (layerManager->EndEmptyTransaction((aType == PaintType_NoComposite) ? LayerManager::END_NO_COMPOSITE : LayerManager::END_DEFAULT)) {
frame->UpdatePaintCountForPaintedPresShells();
presContext->NotifyDidPaintForSubtree();
return;

View File

@ -342,7 +342,7 @@ void nsViewManager::Refresh(nsView *aView, const nsIntRegion& aRegion,
return;
}
if (aView->ForcedRepaint()) {
if (aView->ForcedRepaint() && IsRefreshDriverPaintingEnabled()) {
ProcessPendingUpdates();
aView->SetForcedRepaint(false);
}
@ -1232,8 +1232,13 @@ nsViewManager::UpdateWidgetGeometry()
}
if (mHasPendingWidgetGeometryChanges) {
mHasPendingWidgetGeometryChanges = false;
if (IsRefreshDriverPaintingEnabled()) {
mHasPendingWidgetGeometryChanges = false;
}
ProcessPendingUpdatesForView(mRootView, false);
if (!IsRefreshDriverPaintingEnabled()) {
mHasPendingWidgetGeometryChanges = false;
}
}
}