OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 4268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4279 if ((floatToRemove ? childBlock->containsFloat(floatToRemove) : chil
dBlock->containsFloats()) || childBlock->shrinkToAvoidFloats()) | 4279 if ((floatToRemove ? childBlock->containsFloat(floatToRemove) : chil
dBlock->containsFloats()) || childBlock->shrinkToAvoidFloats()) |
4280 childBlock->markAllDescendantsWithFloatsForLayout(floatToRemove,
inLayout); | 4280 childBlock->markAllDescendantsWithFloatsForLayout(floatToRemove,
inLayout); |
4281 } | 4281 } |
4282 } | 4282 } |
4283 } | 4283 } |
4284 | 4284 |
4285 void RenderBlock::markSiblingsWithFloatsForLayout(RenderBox* floatToRemove) | 4285 void RenderBlock::markSiblingsWithFloatsForLayout(RenderBox* floatToRemove) |
4286 { | 4286 { |
4287 if (!m_floatingObjects) | 4287 if (!m_floatingObjects) |
4288 return; | 4288 return; |
| 4289 |
4289 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); | 4290 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); |
4290 FloatingObjectSetIterator end = floatingObjectSet.end(); | 4291 FloatingObjectSetIterator end = floatingObjectSet.end(); |
4291 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++
it) { | 4292 |
4292 if (logicalBottomForFloat(*it) > logicalHeight()) { | 4293 for (RenderObject* next = nextSibling(); next; next = next->nextSibling()) { |
| 4294 if (!next->isRenderBlock() || next->isFloatingOrPositioned() || toRender
Block(next)->avoidsFloats()) |
| 4295 continue; |
| 4296 |
| 4297 RenderBlock* nextBlock = toRenderBlock(next); |
| 4298 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end
; ++it) { |
4293 RenderBox* floatingBox = (*it)->renderer(); | 4299 RenderBox* floatingBox = (*it)->renderer(); |
4294 if (floatToRemove && floatingBox != floatToRemove) | 4300 if (floatToRemove && floatingBox != floatToRemove) |
4295 continue; | 4301 continue; |
4296 | 4302 if (nextBlock->containsFloat(floatingBox)) |
4297 RenderObject* next = nextSibling(); | 4303 nextBlock->markAllDescendantsWithFloatsForLayout(floatingBox); |
4298 while (next) { | |
4299 if (next->isRenderBlock() && !next->isFloatingOrPositioned() &&
!toRenderBlock(next)->avoidsFloats()) { | |
4300 RenderBlock* nextBlock = toRenderBlock(next); | |
4301 if (nextBlock->containsFloat(floatingBox)) | |
4302 nextBlock->markAllDescendantsWithFloatsForLayout(floatin
gBox); | |
4303 else | |
4304 break; | |
4305 } | |
4306 | |
4307 next = next->nextSibling(); | |
4308 } | |
4309 } | 4304 } |
4310 } | 4305 } |
4311 } | 4306 } |
4312 | 4307 |
4313 LayoutUnit RenderBlock::getClearDelta(RenderBox* child, LayoutUnit logicalTop) | 4308 LayoutUnit RenderBlock::getClearDelta(RenderBox* child, LayoutUnit logicalTop) |
4314 { | 4309 { |
4315 // There is no need to compute clearance if we have no floats. | 4310 // There is no need to compute clearance if we have no floats. |
4316 if (!containsFloats()) | 4311 if (!containsFloats()) |
4317 return 0; | 4312 return 0; |
4318 | 4313 |
(...skipping 2953 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7272 } | 7267 } |
7273 | 7268 |
7274 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl
oatingObject* floatingObject) | 7269 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl
oatingObject* floatingObject) |
7275 { | 7270 { |
7276 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->x(
), floatingObject->y(), floatingObject->maxX(), floatingObject->maxY()); | 7271 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->x(
), floatingObject->y(), floatingObject->maxX(), floatingObject->maxY()); |
7277 } | 7272 } |
7278 | 7273 |
7279 #endif | 7274 #endif |
7280 | 7275 |
7281 } // namespace WebCore | 7276 } // namespace WebCore |
OLD | NEW |