Index: Source/core/rendering/RenderBlockFlow.cpp |
diff --git a/Source/core/rendering/RenderBlockFlow.cpp b/Source/core/rendering/RenderBlockFlow.cpp |
index 0ba9db53f96bedf52594e9b82265d1789dc50d87..0ce41d0edfdc69d6c6387122b54936320971ec4e 100644 |
--- a/Source/core/rendering/RenderBlockFlow.cpp |
+++ b/Source/core/rendering/RenderBlockFlow.cpp |
@@ -342,11 +342,6 @@ inline bool RenderBlockFlow::layoutBlockFlow(bool relayoutChildren, LayoutUnit & |
LayoutStateMaintainer statePusher(*this, locationOffset(), pageLogicalHeight, pageLogicalHeightChanged, columnInfo()); |
- // Regions changing widths can force us to relayout our children. |
- RenderFlowThread* flowThread = flowThreadContainingBlock(); |
- if (updateRegionsAndShapesLogicalSize(flowThread)) |
- relayoutChildren = true; |
- |
// We use four values, maxTopPos, maxTopNeg, maxBottomPos, and maxBottomNeg, to track |
// our current maximal positive and negative margins. These values are used when we |
// are collapsed with adjacent blocks, so for example, if you have block A and B |
@@ -441,7 +436,7 @@ inline bool RenderBlockFlow::layoutBlockFlow(bool relayoutChildren, LayoutUnit & |
layoutPositionedObjects(relayoutChildren || isRoot(), oldLeft != logicalLeft() ? ForcedLayoutAfterContainingBlockMoved : DefaultLayout); |
- updateRegionsAndShapesAfterChildLayout(flowThread, heightChanged); |
+ computeRegionRangeForBlock(flowThreadContainingBlock()); |
// Add overflow from children (unless we're multi-column, since in that case all our child overflow is clipped anyway). |
computeOverflow(oldClientAfterEdge); |
@@ -613,7 +608,6 @@ void RenderBlockFlow::layoutBlockChild(RenderBox* child, MarginInfo& marginInfo, |
determineLogicalLeftPositionForChild(child, ApplyLayoutDelta); |
LayoutSize childOffset = child->location() - oldRect.location(); |
- relayoutShapeDescendantIfMoved(childRenderBlock, childOffset); |
// Update our height now that the child has been placed in the correct position. |
setLogicalHeight(logicalHeight() + logicalHeightForChild(child)); |
@@ -2143,29 +2137,7 @@ LayoutPoint RenderBlockFlow::computeLogicalLocationForFloat(const FloatingObject |
RenderBox* childBox = floatingObject->renderer(); |
LayoutUnit logicalLeftOffset = logicalLeftOffsetForContent(); // Constant part of left offset. |
LayoutUnit logicalRightOffset; // Constant part of right offset. |
- // FIXME Bug 102948: This only works for shape outside directly set on this block. |
- ShapeInsideInfo* shapeInsideInfo = this->layoutShapeInsideInfo(); |
- // FIXME: Implement behavior for right floats. |
- if (shapeInsideInfo) { |
- LayoutSize floatLogicalSize = logicalSizeForFloat(floatingObject); |
- // floatingObject's logicalSize doesn't contain the actual height at this point, so we need to calculate it |
- floatLogicalSize.setHeight(logicalHeightForChild(childBox) + marginBeforeForChild(childBox) + marginAfterForChild(childBox)); |
- |
- // FIXME: If the float doesn't fit in the shape we should push it under the content box |
- logicalTopOffset = shapeInsideInfo->computeFirstFitPositionForFloat(floatLogicalSize); |
- if (logicalHeight() > logicalTopOffset) |
- logicalTopOffset = logicalHeight(); |
- |
- SegmentList segments = shapeInsideInfo->computeSegmentsForLine(logicalTopOffset, floatLogicalSize.height()); |
- // FIXME: Add support for shapes with multiple segments. |
- if (segments.size() >= 1) { |
- // The segment offsets are relative to the content box. |
- logicalRightOffset = logicalLeftOffset + segments[0].logicalRight; |
- logicalLeftOffset += segments[0].logicalLeft; |
- } |
- } else { |
- logicalRightOffset = logicalRightOffsetForContent(); |
- } |
+ logicalRightOffset = logicalRightOffsetForContent(); |
LayoutUnit floatLogicalWidth = min(logicalWidthForFloat(floatingObject), logicalRightOffset - logicalLeftOffset); // The width we look for. |