Put back in an optimization that we apparently really do need. Bug 390425,
r+sr+a=roc git-svn-id: svn://10.0.0.236/trunk@232203 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -10965,6 +10965,24 @@ nsCSSFrameConstructor::MaybeRecreateContainerForIBSplitterFrame(nsIFrame* aFrame
|
||||
return PR_FALSE;
|
||||
}
|
||||
|
||||
// If aFrame is an inline, then it cannot possibly have caused the splitting.
|
||||
// If the frame is being reconstructed and being changed to a block, the
|
||||
// ContentInserted call will handle the containing block reframe. So in this
|
||||
// case, try to be conservative about whether we need to reframe. The only
|
||||
// case when it's needed is if the inline is the only child of the tail end
|
||||
// of an {ib} split, because the splitting code doesn't produce this tail end
|
||||
// if it would have no kids. If that ever changes, this code should change.
|
||||
if (IsInlineOutside(aFrame) &&
|
||||
(
|
||||
// Not a kid of the third part of the IB split
|
||||
GetSpecialSibling(parent) || !IsInlineOutside(parent) ||
|
||||
// Or not the only child
|
||||
aFrame->GetLastContinuation()->GetNextSibling() ||
|
||||
aFrame != parent->GetFirstContinuation()->GetFirstChild(nsnull)
|
||||
)) {
|
||||
return PR_FALSE;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
if (gNoisyContentUpdates || 1) {
|
||||
printf("nsCSSFrameConstructor::MaybeRecreateContainerForIBSplitterFrame: "
|
||||
|
||||
Reference in New Issue
Block a user