mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 12:55:46 +00:00
Bug 579323. Part 3: Fix invalidation of lines to update layers as necessary. r=dbaron
--HG-- extra : rebase_source : 6a043bda5f16f9a257fa4bfa272d8362facef4c2
This commit is contained in:
parent
6ed294185b
commit
a376dd008e
@ -88,6 +88,7 @@
|
||||
#include "nsCSSAnonBoxes.h"
|
||||
#include "nsCSSFrameConstructor.h"
|
||||
#include "nsCSSRendering.h"
|
||||
#include "FrameLayerBuilder.h"
|
||||
|
||||
#ifdef IBMBIDI
|
||||
#include "nsBidiPresUtils.h"
|
||||
@ -2459,6 +2460,7 @@ nsBlockFrame::ReflowLine(nsBlockReflowState& aState,
|
||||
this, dirtyRect.x, dirtyRect.y, dirtyRect.width, dirtyRect.height);
|
||||
#endif
|
||||
Invalidate(dirtyRect);
|
||||
FrameLayerBuilder::InvalidateThebesLayersInSubtree(aLine->mFirstChild);
|
||||
} else {
|
||||
nsRect combinedAreaHStrip, combinedAreaVStrip;
|
||||
nsRect boundsHStrip, boundsVStrip;
|
||||
@ -2503,6 +2505,13 @@ nsBlockFrame::ReflowLine(nsBlockReflowState& aState,
|
||||
printf(" dirty line is %p\n", static_cast<void*>(aLine.get());
|
||||
#endif
|
||||
Invalidate(dirtyRect);
|
||||
if (GetStateBits() & NS_FRAME_HAS_CONTAINER_LAYER_DESCENDANT) {
|
||||
PRInt32 childCount = aLine->GetChildCount();
|
||||
for (nsIFrame* f = aLine->mFirstChild; childCount;
|
||||
--childCount, f = f->GetNextSibling()) {
|
||||
FrameLayerBuilder::InvalidateThebesLayersInSubtree(f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
|
Loading…
Reference in New Issue
Block a user