Bug 621841. Clear restyle flags in frameset kids when we process them. r=dbaron
This commit is contained in:
@@ -365,15 +365,24 @@ nsHTMLFramesetFrame::Init(nsIContent* aContent,
|
||||
|
||||
for (PRUint32 childX = 0; childX < numChildren; childX++) {
|
||||
if (mChildCount == numCells) { // we have more <frame> or <frameset> than cells
|
||||
// Clear the lazy bits in the remaining children.
|
||||
// Clear the lazy bits in the remaining children. Also clear
|
||||
// the restyle flags, like nsCSSFrameConstructor::ProcessChildren does.
|
||||
for (PRUint32 i = childX; i < numChildren; i++) {
|
||||
mContent->GetChildAt(i)->UnsetFlags(NODE_DESCENDANTS_NEED_FRAMES |
|
||||
NODE_NEEDS_FRAME);
|
||||
nsIContent *child = mContent->GetChildAt(i);
|
||||
child->UnsetFlags(NODE_DESCENDANTS_NEED_FRAMES | NODE_NEEDS_FRAME);
|
||||
if (child->IsElement()) {
|
||||
child->UnsetFlags(ELEMENT_ALL_RESTYLE_FLAGS);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
nsIContent *child = mContent->GetChildAt(childX);
|
||||
child->UnsetFlags(NODE_DESCENDANTS_NEED_FRAMES | NODE_NEEDS_FRAME);
|
||||
// Also clear the restyle flags in the child like
|
||||
// nsCSSFrameConstructor::ProcessChildren does.
|
||||
if (child->IsElement()) {
|
||||
child->UnsetFlags(ELEMENT_ALL_RESTYLE_FLAGS);
|
||||
}
|
||||
|
||||
// IMPORTANT: This must match the conditions in
|
||||
// nsCSSFrameConstructor::ContentAppended/Inserted/Removed
|
||||
|
||||
Reference in New Issue
Block a user