Diff
Modified: trunk/Source/WebCore/ChangeLog (126894 => 126895)
--- trunk/Source/WebCore/ChangeLog 2012-08-28 17:53:33 UTC (rev 126894)
+++ trunk/Source/WebCore/ChangeLog 2012-08-28 17:59:13 UTC (rev 126895)
@@ -1,3 +1,51 @@
+2012-08-28 David Hyatt <[email protected]>
+
+ [New Multicolumn] Rename some flow thread methods and region methods/members to make them
+ more accurate and also change some function signatures so they can be used by RenderMultiColumnSet.
+ https://bugs.webkit.org/show_bug.cgi?id=95213
+
+ Reviewed by Simon Fraser.
+
+ Rename regionRect()/setRegionRect()/m_regionRect on RenderRegion to be flowThreadPortionRect instead.
+ The term regionRect() makes it sound like you're painting a rect in the region's coordinate space,
+ but regionRect() actually represents the portion of the flow thread in the flow thread's coordinate space
+ that this region "owns."
+
+ Also fix paintIntoRegion and hitTestRegion to take specific flow thread portion rects to paint. This
+ allows a region set to paint a portion of a portion, i.e., if a multicolumn set owns part of the flow thread
+ it has to be able to further break up that part into individual columns and issue multiple paint calls, one
+ for each column.
+
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::layout):
+ (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
+ (WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
+ (WebCore::RenderFlowThread::repaintRectangleInRegions):
+ (WebCore::RenderFlowThread::renderRegionForLine):
+ (WebCore::RenderFlowThread::regionLogicalTopForLine):
+ (WebCore::RenderFlowThread::regionLogicalWidthForLine):
+ (WebCore::RenderFlowThread::regionLogicalHeightForLine):
+ (WebCore::RenderFlowThread::regionRemainingLogicalHeightForLine):
+ (WebCore::RenderFlowThread::mapFromFlowToRegion):
+ (WebCore::RenderFlowThread::contentLogicalLeftOfFirstRegion):
+ (WebCore::RenderFlowThread::computeOverflowStateForRegions):
+ * rendering/RenderFlowThread.h:
+ * rendering/RenderMultiColumnSet.cpp:
+ (WebCore::RenderMultiColumnSet::columnCount):
+ (WebCore::RenderMultiColumnSet::paintColumnContents):
+ * rendering/RenderRegion.cpp:
+ (WebCore::RenderRegion::flowThreadPortionOverflowRect):
+ (WebCore::RenderRegion::paintReplaced):
+ (WebCore::RenderRegion::nodeAtPoint):
+ (WebCore::RenderRegion::layout):
+ (WebCore::RenderRegion::offsetFromLogicalTopOfFirstPage):
+ * rendering/RenderRegion.h:
+ (WebCore::RenderRegion::setFlowThreadPortionRect):
+ (WebCore::RenderRegion::flowThreadPortionRect):
+ (RenderRegion):
+ * rendering/RenderRegionSet.cpp:
+ (WebCore::RenderRegionSet::expandToEncompassFlowThreadContentsIfNeeded):
+
2012-08-28 Alpha Lam <[email protected]>
Report frame bytes by platform ImageDecoder
Modified: trunk/Source/WebCore/rendering/RenderFlowThread.cpp (126894 => 126895)
--- trunk/Source/WebCore/rendering/RenderFlowThread.cpp 2012-08-28 17:53:33 UTC (rev 126894)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.cpp 2012-08-28 17:59:13 UTC (rev 126895)
@@ -177,7 +177,7 @@
LayoutUnit regionLogicalHeight = region->logicalHeightForFlowThreadContent();
LayoutRect regionRect(style()->direction() == LTR ? ZERO_LAYOUT_UNIT : logicalWidth() - regionLogicalWidth, logicalHeight, regionLogicalWidth, regionLogicalHeight);
- region->setRegionRect(isHorizontalWritingMode() ? regionRect : regionRect.transposedRect());
+ region->setFlowThreadPortionRect(isHorizontalWritingMode() ? regionRect : regionRect.transposedRect());
logicalHeight += regionLogicalHeight;
}
}
@@ -236,7 +236,7 @@
setLogicalHeight(logicalHeight);
}
-void RenderFlowThread::paintIntoRegion(PaintInfo& paintInfo, RenderRegion* region, const LayoutPoint& paintOffset)
+void RenderFlowThread::paintFlowThreadPortionInRegion(PaintInfo& paintInfo, RenderRegion* region, LayoutRect flowThreadPortionRect, LayoutRect flowThreadPortionOverflowRect, const LayoutPoint& paintOffset) const
{
GraphicsContext* context = paintInfo.context;
if (!context)
@@ -245,9 +245,7 @@
// Adjust the clipping rect for the region.
// paintOffset contains the offset where the painting should occur
// adjusted with the region padding and border.
- LayoutRect regionRect(region->regionRect());
- LayoutRect regionOversetRect(region->regionOversetRect());
- LayoutRect regionClippingRect(paintOffset + (regionOversetRect.location() - regionRect.location()), regionOversetRect.size());
+ LayoutRect regionClippingRect(paintOffset + (flowThreadPortionOverflowRect.location() - flowThreadPortionRect.location()), flowThreadPortionOverflowRect.size());
PaintInfo info(paintInfo);
info.rect.intersect(pixelSnappedIntRect(regionClippingRect));
@@ -259,14 +257,14 @@
// RenderFlowThread should start painting its content in a position that is offset
// from the region rect's current position. The amount of offset is equal to the location of
- // region in flow coordinates.
+ // the flow thread portion in the flow thread's local coordinates.
IntPoint renderFlowThreadOffset;
if (style()->isFlippedBlocksWritingMode()) {
- LayoutRect flippedRegionRect(regionRect);
- flipForWritingMode(flippedRegionRect);
- renderFlowThreadOffset = roundedIntPoint(paintOffset - flippedRegionRect.location());
+ LayoutRect flippedFlowThreadPortionRect(flowThreadPortionRect);
+ flipForWritingMode(flippedFlowThreadPortionRect);
+ renderFlowThreadOffset = roundedIntPoint(paintOffset - flippedFlowThreadPortionRect.location());
} else
- renderFlowThreadOffset = roundedIntPoint(paintOffset - regionRect.location());
+ renderFlowThreadOffset = roundedIntPoint(paintOffset - flowThreadPortionRect.location());
context->translate(renderFlowThreadOffset.x(), renderFlowThreadOffset.y());
info.rect.moveBy(-renderFlowThreadOffset);
@@ -277,21 +275,19 @@
}
}
-bool RenderFlowThread::hitTestRegion(RenderRegion* region, const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset)
+bool RenderFlowThread::hitTestFlowThreadPortionInRegion(RenderRegion* region, LayoutRect flowThreadPortionRect, LayoutRect flowThreadPortionOverflowRect, const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset) const
{
- LayoutRect regionRect(region->regionRect());
- LayoutRect regionOversetRect = region->regionOversetRect();
- LayoutRect regionClippingRect(accumulatedOffset + (regionOversetRect.location() - regionRect.location()), regionOversetRect.size());
+ LayoutRect regionClippingRect(accumulatedOffset + (flowThreadPortionOverflowRect.location() - flowThreadPortionRect.location()), flowThreadPortionOverflowRect.size());
if (!regionClippingRect.contains(locationInContainer.point()))
return false;
LayoutSize renderFlowThreadOffset;
if (style()->isFlippedBlocksWritingMode()) {
- LayoutRect flippedRegionRect(regionRect);
- flipForWritingMode(flippedRegionRect);
- renderFlowThreadOffset = accumulatedOffset - flippedRegionRect.location();
+ LayoutRect flippedFlowThreadPortionRect(flowThreadPortionRect);
+ flipForWritingMode(flippedFlowThreadPortionRect);
+ renderFlowThreadOffset = accumulatedOffset - flippedFlowThreadPortionRect.location();
} else
- renderFlowThreadOffset = accumulatedOffset - regionRect.location();
+ renderFlowThreadOffset = accumulatedOffset - flowThreadPortionRect.location();
// Always ignore clipping, since the RenderFlowThread has nothing to do with the bounds of the FrameView.
HitTestRequest newRequest(request.type() | HitTestRequest::IgnoreClipping);
@@ -326,18 +322,18 @@
continue;
// We only have to issue a repaint in this region if the region rect intersects the repaint rect.
- LayoutRect flippedRegionRect(region->regionRect());
- LayoutRect flippedRegionOversetRect(region->regionOversetRect());
- flipForWritingMode(flippedRegionRect); // Put the region rects into physical coordinates.
- flipForWritingMode(flippedRegionOversetRect);
+ LayoutRect flippedFlowThreadPortionRect(region->flowThreadPortionRect());
+ LayoutRect flippedFlowThreadPortionOverflowRect(region->flowThreadPortionOverflowRect());
+ flipForWritingMode(flippedFlowThreadPortionRect); // Put the region rects into physical coordinates.
+ flipForWritingMode(flippedFlowThreadPortionOverflowRect);
LayoutRect clippedRect(repaintRect);
- clippedRect.intersect(flippedRegionOversetRect);
+ clippedRect.intersect(flippedFlowThreadPortionOverflowRect);
if (clippedRect.isEmpty())
continue;
// Put the region rect into the region's physical coordinate space.
- clippedRect.setLocation(region->contentBoxRect().location() + (clippedRect.location() - flippedRegionRect.location()));
+ clippedRect.setLocation(region->contentBoxRect().location() + (clippedRect.location() - flippedFlowThreadPortionRect.location()));
// Now switch to the region's writing mode coordinate space and let it repaint itself.
region->flipForWritingMode(clippedRect);
@@ -368,7 +364,7 @@
if (position <= 0)
return region;
- LayoutRect regionRect = region->regionRect();
+ LayoutRect regionRect = region->flowThreadPortionRect();
if ((useHorizontalWritingMode && position < regionRect.maxY()) || (!useHorizontalWritingMode && position < regionRect.maxX()))
return region;
@@ -385,7 +381,7 @@
RenderRegion* region = renderRegionForLine(position);
if (!region)
return 0;
- return isHorizontalWritingMode() ? region->regionRect().y() : region->regionRect().x();
+ return isHorizontalWritingMode() ? region->flowThreadPortionRect().y() : region->flowThreadPortionRect().x();
}
LayoutUnit RenderFlowThread::regionLogicalWidthForLine(LayoutUnit position) const
@@ -393,7 +389,7 @@
RenderRegion* region = renderRegionForLine(position, true);
if (!region)
return contentLogicalWidth();
- return isHorizontalWritingMode() ? region->regionRect().width() : region->regionRect().height();
+ return isHorizontalWritingMode() ? region->flowThreadPortionRect().width() : region->flowThreadPortionRect().height();
}
LayoutUnit RenderFlowThread::regionLogicalHeightForLine(LayoutUnit position) const
@@ -401,7 +397,7 @@
RenderRegion* region = renderRegionForLine(position);
if (!region)
return 0;
- return isHorizontalWritingMode() ? region->regionRect().height() : region->regionRect().width();
+ return isHorizontalWritingMode() ? region->flowThreadPortionRect().height() : region->flowThreadPortionRect().width();
}
LayoutUnit RenderFlowThread::regionRemainingLogicalHeightForLine(LayoutUnit position, PageBoundaryRule pageBoundaryRule) const
@@ -410,12 +406,12 @@
if (!region)
return 0;
- LayoutUnit regionLogicalBottom = isHorizontalWritingMode() ? region->regionRect().maxY() : region->regionRect().maxX();
+ LayoutUnit regionLogicalBottom = isHorizontalWritingMode() ? region->flowThreadPortionRect().maxY() : region->flowThreadPortionRect().maxX();
LayoutUnit remainingHeight = regionLogicalBottom - position;
if (pageBoundaryRule == IncludePageBoundary) {
// If IncludePageBoundary is set, the line exactly on the top edge of a
// region will act as being part of the previous region.
- LayoutUnit regionHeight = isHorizontalWritingMode() ? region->regionRect().height() : region->regionRect().width();
+ LayoutUnit regionHeight = isHorizontalWritingMode() ? region->flowThreadPortionRect().height() : region->flowThreadPortionRect().width();
remainingHeight = intMod(remainingHeight, regionHeight);
}
return remainingHeight;
@@ -438,7 +434,7 @@
if (!renderRegion)
return 0;
- LayoutRect flippedRegionRect(renderRegion->regionRect());
+ LayoutRect flippedRegionRect(renderRegion->flowThreadPortionRect());
flipForWritingMode(flippedRegionRect);
transformState.move(renderRegion->contentBoxRect().location() - flippedRegionRect.location());
@@ -546,7 +542,7 @@
RenderRegion* region = *iter;
if (!region->isValid())
continue;
- return isHorizontalWritingMode() ? region->regionRect().x() : region->regionRect().y();
+ return isHorizontalWritingMode() ? region->flowThreadPortionRect().x() : region->flowThreadPortionRect().y();
}
ASSERT_NOT_REACHED();
return 0;
@@ -674,8 +670,8 @@
region->setRegionState(RenderRegion::RegionUndefined);
continue;
}
- LayoutUnit flowMin = height - (isHorizontalWritingMode() ? region->regionRect().y() : region->regionRect().x());
- LayoutUnit flowMax = height - (isHorizontalWritingMode() ? region->regionRect().maxY() : region->regionRect().maxX());
+ LayoutUnit flowMin = height - (isHorizontalWritingMode() ? region->flowThreadPortionRect().y() : region->flowThreadPortionRect().x());
+ LayoutUnit flowMax = height - (isHorizontalWritingMode() ? region->flowThreadPortionRect().maxY() : region->flowThreadPortionRect().maxX());
RenderRegion::RegionState previousState = region->regionState();
RenderRegion::RegionState state = RenderRegion::RegionFit;
if (flowMin <= 0)
Modified: trunk/Source/WebCore/rendering/RenderFlowThread.h (126894 => 126895)
--- trunk/Source/WebCore/rendering/RenderFlowThread.h 2012-08-28 17:53:33 UTC (rev 126894)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.h 2012-08-28 17:59:13 UTC (rev 126895)
@@ -76,8 +76,8 @@
void computeLogicalWidth();
void computeLogicalHeight();
- void paintIntoRegion(PaintInfo&, RenderRegion*, const LayoutPoint& paintOffset);
- bool hitTestRegion(RenderRegion*, const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset);
+ void paintFlowThreadPortionInRegion(PaintInfo&, RenderRegion*, LayoutRect flowThreadPortionRect, LayoutRect flowThreadPortionOverflowRect, const LayoutPoint&) const;
+ bool hitTestFlowThreadPortionInRegion(RenderRegion*, LayoutRect flowThreadPortionRect, LayoutRect flowThreadPortionOverflowRect, const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset) const;
bool hasRegions() const { return m_regionList.size(); }
bool hasValidRegions() const { ASSERT(!m_regionsInvalidated); return m_hasValidRegions; }
Modified: trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp (126894 => 126895)
--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp 2012-08-28 17:53:33 UTC (rev 126894)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp 2012-08-28 17:59:13 UTC (rev 126895)
@@ -75,7 +75,7 @@
return 0;
// Our region rect determines our column count. We have as many columns as needed to fit all the content.
- LayoutUnit logicalHeightInColumns = flowThread()->isHorizontalWritingMode() ? regionRect().height() : regionRect().width();
+ LayoutUnit logicalHeightInColumns = flowThread()->isHorizontalWritingMode() ? flowThreadPortionRect().height() : flowThreadPortionRect().width();
return ceil(static_cast<float>(logicalHeightInColumns) / computedColumnHeight());
}
@@ -167,7 +167,7 @@
void RenderMultiColumnSet::paintColumnContents(PaintInfo& /*paintInfo*/, const LayoutPoint& /*paintOffset*/)
{
// For each rectangle, set it as the region rectangle and then let flow thread painting do the rest.
- // We make multiple calls to paintIntoRegion, changing the rectangles each time.
+ // We make multiple calls to paintFlowThreadPortionInRegion, changing the rectangles each time.
unsigned colCount = columnCount();
if (!colCount)
return;
Modified: trunk/Source/WebCore/rendering/RenderRegion.cpp (126894 => 126895)
--- trunk/Source/WebCore/rendering/RenderRegion.cpp 2012-08-28 17:53:33 UTC (rev 126894)
+++ trunk/Source/WebCore/rendering/RenderRegion.cpp 2012-08-28 17:59:13 UTC (rev 126895)
@@ -62,7 +62,7 @@
return m_flowThread->isHorizontalWritingMode() ? contentHeight() : contentWidth();
}
-LayoutRect RenderRegion::regionOversetRect() const
+LayoutRect RenderRegion::flowThreadPortionOverflowRect() const
{
// FIXME: Would like to just use hasOverflowClip() but we aren't a block yet. When RenderRegion is eliminated and
// folded into RenderBlock, switch to hasOverflowClip().
@@ -70,7 +70,7 @@
bool clipY = style()->overflowY() != OVISIBLE;
bool isLastRegionWithRegionOverflowBreak = (isLastRegion() && (style()->regionOverflow() == BreakRegionOverflow));
if ((clipX && clipY) || !isValid() || !m_flowThread || isLastRegionWithRegionOverflowBreak)
- return regionRect();
+ return flowThreadPortionRect();
LayoutRect flowThreadOverflow = m_flowThread->visualOverflowRect();
@@ -78,16 +78,16 @@
LayoutUnit outlineSize = maximalOutlineSize(PaintPhaseOutline);
LayoutRect clipRect;
if (m_flowThread->isHorizontalWritingMode()) {
- LayoutUnit minY = isFirstRegion() ? (flowThreadOverflow.y() - outlineSize) : regionRect().y();
- LayoutUnit maxY = isLastRegion() ? max(regionRect().maxY(), flowThreadOverflow.maxY()) + outlineSize : regionRect().maxY();
- LayoutUnit minX = clipX ? regionRect().x() : (flowThreadOverflow.x() - outlineSize);
- LayoutUnit maxX = clipX ? regionRect().maxX() : (flowThreadOverflow.maxX() + outlineSize);
+ LayoutUnit minY = isFirstRegion() ? (flowThreadOverflow.y() - outlineSize) : flowThreadPortionRect().y();
+ LayoutUnit maxY = isLastRegion() ? max(flowThreadPortionRect().maxY(), flowThreadOverflow.maxY()) + outlineSize : flowThreadPortionRect().maxY();
+ LayoutUnit minX = clipX ? flowThreadPortionRect().x() : (flowThreadOverflow.x() - outlineSize);
+ LayoutUnit maxX = clipX ? flowThreadPortionRect().maxX() : (flowThreadOverflow.maxX() + outlineSize);
clipRect = LayoutRect(minX, minY, maxX - minX, maxY - minY);
} else {
- LayoutUnit minX = isFirstRegion() ? (flowThreadOverflow.x() - outlineSize) : regionRect().x();
- LayoutUnit maxX = isLastRegion() ? max(regionRect().maxX(), flowThreadOverflow.maxX()) + outlineSize : regionRect().maxX();
- LayoutUnit minY = clipY ? regionRect().y() : (flowThreadOverflow.y() - outlineSize);
- LayoutUnit maxY = clipY ? regionRect().maxY() : (flowThreadOverflow.maxY() + outlineSize);
+ LayoutUnit minX = isFirstRegion() ? (flowThreadOverflow.x() - outlineSize) : flowThreadPortionRect().x();
+ LayoutUnit maxX = isLastRegion() ? max(flowThreadPortionRect().maxX(), flowThreadOverflow.maxX()) + outlineSize : flowThreadPortionRect().maxX();
+ LayoutUnit minY = clipY ? flowThreadPortionRect().y() : (flowThreadOverflow.y() - outlineSize);
+ LayoutUnit maxY = clipY ? flowThreadPortionRect().maxY() : (flowThreadOverflow.maxY() + outlineSize);
clipRect = LayoutRect(minX, minY, maxX - minX, maxY - minY);
}
@@ -113,7 +113,7 @@
return;
setRegionObjectsRegionStyle();
- m_flowThread->paintIntoRegion(paintInfo, this, LayoutPoint(paintOffset.x() + borderLeft() + paddingLeft(), paintOffset.y() + borderTop() + paddingTop()));
+ m_flowThread->paintFlowThreadPortionInRegion(paintInfo, this, flowThreadPortionRect(), flowThreadPortionOverflowRect(), LayoutPoint(paintOffset.x() + borderLeft() + paddingLeft(), paintOffset.y() + borderTop() + paddingTop()));
restoreRegionObjectsOriginalStyle();
}
@@ -131,7 +131,7 @@
boundsRect.moveBy(adjustedLocation);
if (visibleToHitTesting() && action == HitTestForeground && locationInContainer.intersects(boundsRect)) {
// Check the contents of the RenderFlowThread.
- if (m_flowThread && m_flowThread->hitTestRegion(this, request, result, locationInContainer, LayoutPoint(adjustedLocation.x() + borderLeft() + paddingLeft(), adjustedLocation.y() + borderTop() + paddingTop())))
+ if (m_flowThread && m_flowThread->hitTestFlowThreadPortionInRegion(this, flowThreadPortionRect(), flowThreadPortionOverflowRect(), request, result, locationInContainer, LayoutPoint(adjustedLocation.x() + borderLeft() + paddingLeft(), adjustedLocation.y() + borderTop() + paddingTop())))
return true;
updateHitTestResult(result, locationInContainer.point() - toLayoutSize(adjustedLocation));
if (!result.addNodeToRectBasedTestResult(node(), locationInContainer, boundsRect))
@@ -172,7 +172,7 @@
{
RenderReplaced::layout();
if (m_flowThread && isValid()) {
- LayoutRect oldRegionRect(regionRect());
+ LayoutRect oldRegionRect(flowThreadPortionRect());
if (!isHorizontalWritingMode())
oldRegionRect = oldRegionRect.transposedRect();
if (oldRegionRect.width() != logicalWidthForFlowThreadContent() || oldRegionRect.height() != logicalHeightForFlowThreadContent())
@@ -287,8 +287,8 @@
if (!m_isValid || !m_flowThread)
return 0;
if (m_flowThread->isHorizontalWritingMode())
- return regionRect().y();
- return regionRect().x();
+ return flowThreadPortionRect().y();
+ return flowThreadPortionRect().x();
}
void RenderRegion::setRegionObjectsRegionStyle()
Modified: trunk/Source/WebCore/rendering/RenderRegion.h (126894 => 126895)
--- trunk/Source/WebCore/rendering/RenderRegion.h 2012-08-28 17:53:33 UTC (rev 126894)
+++ trunk/Source/WebCore/rendering/RenderRegion.h 2012-08-28 17:59:13 UTC (rev 126895)
@@ -51,9 +51,9 @@
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
- void setRegionRect(const LayoutRect& rect) { m_regionRect = rect; }
- LayoutRect regionRect() const { return m_regionRect; }
- LayoutRect regionOversetRect() const;
+ void setFlowThreadPortionRect(const LayoutRect& rect) { m_flowThreadPortionRect = rect; }
+ LayoutRect flowThreadPortionRect() const { return m_flowThreadPortionRect; }
+ LayoutRect flowThreadPortionOverflowRect() const;
void attachRegion();
void detachRegion();
@@ -127,7 +127,7 @@
// we need to create a dependency tree, so that layout of the
// regions is always done before the regions themselves.
RenderNamedFlowThread* m_parentNamedFlowThread;
- LayoutRect m_regionRect;
+ LayoutRect m_flowThreadPortionRect;
// This map holds unique information about a block that is split across regions.
// A RenderBoxRegionInfo* tells us about any layout information for a RenderBox that
Modified: trunk/Source/WebCore/rendering/RenderRegionSet.cpp (126894 => 126895)
--- trunk/Source/WebCore/rendering/RenderRegionSet.cpp 2012-08-28 17:53:33 UTC (rev 126894)
+++ trunk/Source/WebCore/rendering/RenderRegionSet.cpp 2012-08-28 17:59:13 UTC (rev 126895)
@@ -46,7 +46,7 @@
// Whenever the last region is a set, it always expands its region rect to consume all
// of the flow thread content. This is because it is always capable of generating an
// infinite number of boxes in order to hold all of the remaining content.
- LayoutRect rect(regionRect());
+ LayoutRect rect(flowThreadPortionRect());
// Get the offset within the flow thread in its block progression direction. Then get the
// flow thread's remaining logical height including its overflow and expand our rect
@@ -57,7 +57,7 @@
LayoutUnit logicalTopOffset = isHorizontal ? rect.y() : rect.x();
LayoutRect layoutRect = flowThread()->layoutOverflowRect();
LayoutUnit logicalHeightWithOverflow = (isHorizontal ? layoutRect.maxY() - flowThread()->y() : layoutRect.maxX() - flowThread()->x()) - logicalTopOffset;
- setRegionRect(LayoutRect(rect.x(), rect.y(), isHorizontal ? rect.width() : logicalHeightWithOverflow, isHorizontal ? logicalHeightWithOverflow : rect.height()));
+ setFlowThreadPortionRect(LayoutRect(rect.x(), rect.y(), isHorizontal ? rect.width() : logicalHeightWithOverflow, isHorizontal ? logicalHeightWithOverflow : rect.height()));
}
}