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:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user