Bug 260896. When a floating first-letter frame reports FRAME_IS_NOT_COMPLETE after reflow, (then unlike blocks) that does NOT mean that it needs to continue on the next page! It just means it has an inline continuation. So correct its reflow status early in ReflowFloat so that we don't confuse the heck out of block reflow. r+sr=dbaron

git-svn-id: svn://10.0.0.236/trunk@162931 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
roc+%cs.cmu.edu
2004-09-29 02:18:25 +00:00
parent f303e742c2
commit 22c664a250
4 changed files with 16 additions and 10 deletions

View File

@@ -5109,6 +5109,14 @@ nsBlockFrame::ReflowFloat(nsBlockReflowState& aState,
}
}
if (floatFrame->GetType() == nsLayoutAtoms::letterFrame) {
// We never split floating first letters; an incomplete state for
// such frames simply means that there is more content to be
// reflowed on the line.
if (NS_FRAME_IS_NOT_COMPLETE(aReflowStatus))
aReflowStatus = NS_FRAME_COMPLETE;
}
// Remove the float from the reflow tree.
if (aState.mReflowState.path)
aState.mReflowState.path->RemoveChild(floatFrame);

View File

@@ -1014,11 +1014,6 @@ nsLineLayout::ReflowFrame(nsIFrame* aFrame,
}
if (outOfFlowFrame->GetType() == nsLayoutAtoms::letterFrame) {
SetFlag(LL_FIRSTLETTERSTYLEOK, PR_FALSE);
// An incomplete reflow status means we should split the
// float if the height is constrained (bug 145305). We
// never split floating first letters.
if (NS_FRAME_IS_NOT_COMPLETE(aReflowStatus))
aReflowStatus = NS_FRAME_COMPLETE;
}
}
}

View File

@@ -5109,6 +5109,14 @@ nsBlockFrame::ReflowFloat(nsBlockReflowState& aState,
}
}
if (floatFrame->GetType() == nsLayoutAtoms::letterFrame) {
// We never split floating first letters; an incomplete state for
// such frames simply means that there is more content to be
// reflowed on the line.
if (NS_FRAME_IS_NOT_COMPLETE(aReflowStatus))
aReflowStatus = NS_FRAME_COMPLETE;
}
// Remove the float from the reflow tree.
if (aState.mReflowState.path)
aState.mReflowState.path->RemoveChild(floatFrame);

View File

@@ -1014,11 +1014,6 @@ nsLineLayout::ReflowFrame(nsIFrame* aFrame,
}
if (outOfFlowFrame->GetType() == nsLayoutAtoms::letterFrame) {
SetFlag(LL_FIRSTLETTERSTYLEOK, PR_FALSE);
// An incomplete reflow status means we should split the
// float if the height is constrained (bug 145305). We
// never split floating first letters.
if (NS_FRAME_IS_NOT_COMPLETE(aReflowStatus))
aReflowStatus = NS_FRAME_COMPLETE;
}
}
}