OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 888 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
899 next = child->nextSiblingBox(); | 899 next = child->nextSiblingBox(); |
900 | 900 |
901 // FIXME: this should only be set from clearNeedsLayout crbug.com/361250 | 901 // FIXME: this should only be set from clearNeedsLayout crbug.com/361250 |
902 child->setLayoutDidGetCalled(true); | 902 child->setLayoutDidGetCalled(true); |
903 | 903 |
904 if (childToExclude == child) | 904 if (childToExclude == child) |
905 continue; // Skip this child, since it will be positioned by the spe
cialized subclass (fieldsets and ruby runs). | 905 continue; // Skip this child, since it will be positioned by the spe
cialized subclass (fieldsets and ruby runs). |
906 | 906 |
907 updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, child); | 907 updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, child); |
908 | 908 |
| 909 child->setMayNeedInvalidation(true); |
| 910 |
909 if (child->isOutOfFlowPositioned()) { | 911 if (child->isOutOfFlowPositioned()) { |
910 child->containingBlock()->insertPositionedObject(child); | 912 child->containingBlock()->insertPositionedObject(child); |
911 adjustPositionedBlock(child, marginInfo); | 913 adjustPositionedBlock(child, marginInfo); |
912 continue; | 914 continue; |
913 } | 915 } |
914 if (child->isFloating()) { | 916 if (child->isFloating()) { |
915 insertFloatingObject(child); | 917 insertFloatingObject(child); |
916 adjustFloatingBlock(marginInfo); | 918 adjustFloatingBlock(marginInfo); |
917 continue; | 919 continue; |
918 } | 920 } |
(...skipping 1389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2308 FloatingObjectSetIterator end = floatingObjectSet.end(); | 2310 FloatingObjectSetIterator end = floatingObjectSet.end(); |
2309 // Now walk through the set of unpositioned floats and place them. | 2311 // Now walk through the set of unpositioned floats and place them. |
2310 for (; it != end; ++it) { | 2312 for (; it != end; ++it) { |
2311 FloatingObject* floatingObject = *it; | 2313 FloatingObject* floatingObject = *it; |
2312 // The containing block is responsible for positioning floats, so if we
have floats in our | 2314 // The containing block is responsible for positioning floats, so if we
have floats in our |
2313 // list that come from somewhere else, do not attempt to position them. | 2315 // list that come from somewhere else, do not attempt to position them. |
2314 if (floatingObject->renderer()->containingBlock() != this) | 2316 if (floatingObject->renderer()->containingBlock() != this) |
2315 continue; | 2317 continue; |
2316 | 2318 |
2317 RenderBox* childBox = floatingObject->renderer(); | 2319 RenderBox* childBox = floatingObject->renderer(); |
| 2320 childBox->setMayNeedInvalidation(true); |
2318 | 2321 |
2319 LayoutUnit childLogicalLeftMargin = style()->isLeftToRightDirection() ?
marginStartForChild(childBox) : marginEndForChild(childBox); | 2322 LayoutUnit childLogicalLeftMargin = style()->isLeftToRightDirection() ?
marginStartForChild(childBox) : marginEndForChild(childBox); |
2320 LayoutRect oldRect = childBox->frameRect(); | 2323 LayoutRect oldRect = childBox->frameRect(); |
2321 | 2324 |
2322 if (childBox->style()->clear() & CLEFT) | 2325 if (childBox->style()->clear() & CLEFT) |
2323 logicalTop = max(lowestFloatLogicalBottom(FloatingObject::FloatLeft)
, logicalTop); | 2326 logicalTop = max(lowestFloatLogicalBottom(FloatingObject::FloatLeft)
, logicalTop); |
2324 if (childBox->style()->clear() & CRIGHT) | 2327 if (childBox->style()->clear() & CRIGHT) |
2325 logicalTop = max(lowestFloatLogicalBottom(FloatingObject::FloatRight
), logicalTop); | 2328 logicalTop = max(lowestFloatLogicalBottom(FloatingObject::FloatRight
), logicalTop); |
2326 | 2329 |
2327 LayoutPoint floatLogicalLocation = computeLogicalLocationForFloat(floati
ngObject, logicalTop); | 2330 LayoutPoint floatLogicalLocation = computeLogicalLocationForFloat(floati
ngObject, logicalTop); |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2793 RenderBlockFlow::RenderBlockFlowRareData& RenderBlockFlow::ensureRareData() | 2796 RenderBlockFlow::RenderBlockFlowRareData& RenderBlockFlow::ensureRareData() |
2794 { | 2797 { |
2795 if (m_rareData) | 2798 if (m_rareData) |
2796 return *m_rareData; | 2799 return *m_rareData; |
2797 | 2800 |
2798 m_rareData = adoptPtr(new RenderBlockFlowRareData(this)); | 2801 m_rareData = adoptPtr(new RenderBlockFlowRareData(this)); |
2799 return *m_rareData; | 2802 return *m_rareData; |
2800 } | 2803 } |
2801 | 2804 |
2802 } // namespace WebCore | 2805 } // namespace WebCore |
OLD | NEW |