Don't steal floats from descendant float containing blocks. b=348887 r+sr=roc

This commit is contained in:
mats.palmgren%bredband.net 2006-08-22 03:04:18 +00:00
Родитель 069e1d3e0b
Коммит 4c62cf70f6
1 изменённых файлов: 4 добавлений и 4 удалений

Просмотреть файл

@ -7135,13 +7135,13 @@ nsBlockFrame::ReflowBullet(nsBlockReflowState& aState,
// This is used to scan frames for any float placeholders, add their // This is used to scan frames for any float placeholders, add their
// floats to the list represented by aHead and aTail, and remove the // floats to the list represented by aHead and aTail, and remove the
// floats from whatever list they might be in. We only search the // floats from whatever list they might be in. We don't search descendants
// inline descendants. The floats must be children of 'this'. // that are float containing blocks. The floats must be children of 'this'.
void nsBlockFrame::CollectFloats(nsIFrame* aFrame, nsFrameList& aList, nsIFrame** aTail, void nsBlockFrame::CollectFloats(nsIFrame* aFrame, nsFrameList& aList, nsIFrame** aTail,
PRBool aFromOverflow) { PRBool aFromOverflow) {
while (aFrame) { while (aFrame) {
// Don't descend into block children // Don't descend into float containing blocks.
if (!aFrame->GetStyleDisplay()->IsBlockLevel()) { if (!aFrame->IsFloatContainingBlock()) {
nsIFrame *outOfFlowFrame = nsLayoutUtils::GetFloatFromPlaceholder(aFrame); nsIFrame *outOfFlowFrame = nsLayoutUtils::GetFloatFromPlaceholder(aFrame);
if (outOfFlowFrame) { if (outOfFlowFrame) {
// Make sure that its parent is us. Otherwise we don't want // Make sure that its parent is us. Otherwise we don't want