Title: [126895] trunk/Source/WebCore
Revision
126895
Author
[email protected]
Date
2012-08-28 10:59:13 -0700 (Tue, 28 Aug 2012)

Log Message

[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):

Modified Paths

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()));
 }
 
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to