Title: [167982] trunk/Source/WebCore
Revision
167982
Author
hy...@apple.com
Date
2014-04-29 22:15:34 -0700 (Tue, 29 Apr 2014)

Log Message

[New Multicolumn] Multiple tests assert in RenderGeometryMap
https://bugs.webkit.org/show_bug.cgi?id=132285

Reviewed by Simon Fraser.

Implement offsetFromContainer for RenderMultiColumnFlowThread so that the
geometry map gets the right offsets. This is really only relevant for the 
geometry map, since I already overrode mapAbsoluteToLocalPoint and multicolumn
flow threads are repaint containers (so mapLocalToAbsolute never needs offsetFromContainer).

* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
* rendering/RenderMultiColumnFlowThread.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (167981 => 167982)


--- trunk/Source/WebCore/ChangeLog	2014-04-30 04:54:07 UTC (rev 167981)
+++ trunk/Source/WebCore/ChangeLog	2014-04-30 05:15:34 UTC (rev 167982)
@@ -1,3 +1,19 @@
+2014-04-29  David Hyatt  <hy...@apple.com>
+
+        [New Multicolumn] Multiple tests assert in RenderGeometryMap
+        https://bugs.webkit.org/show_bug.cgi?id=132285
+
+        Reviewed by Simon Fraser.
+
+        Implement offsetFromContainer for RenderMultiColumnFlowThread so that the
+        geometry map gets the right offsets. This is really only relevant for the 
+        geometry map, since I already overrode mapAbsoluteToLocalPoint and multicolumn
+        flow threads are repaint containers (so mapLocalToAbsolute never needs offsetFromContainer).
+
+        * rendering/RenderMultiColumnFlowThread.cpp:
+        (WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
+        * rendering/RenderMultiColumnFlowThread.h:
+
 2014-04-29  Benjamin Poulain  <bpoul...@apple.com>
 
         [iOS][WK2] When pageScaleFactor * deviceScaleFactor = 1, the tile grid is completely messed up

Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp (167981 => 167982)


--- trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp	2014-04-30 04:54:07 UTC (rev 167981)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp	2014-04-30 05:15:34 UTC (rev 167982)
@@ -583,6 +583,24 @@
     }
 }
 
+LayoutSize RenderMultiColumnFlowThread::offsetFromContainer(RenderObject* enclosingContainer, const LayoutPoint& physicalPoint, bool* offsetDependsOnPoint) const
+{
+    ASSERT(enclosingContainer == container());
+
+    if (offsetDependsOnPoint)
+        *offsetDependsOnPoint = true;
+    
+    LayoutPoint translatedPhysicalPoint(physicalPoint);
+    RenderRegion* region = physicalTranslationFromFlowToRegion(translatedPhysicalPoint);
+    if (region)
+        translatedPhysicalPoint.moveBy(region->topLeftLocation());
+    
+    LayoutSize offset(translatedPhysicalPoint.x(), translatedPhysicalPoint.y());
+    if (enclosingContainer->isBox())
+        offset -= toRenderBox(enclosingContainer)->scrolledContentOffset();
+    return offset;
+}
+    
 void RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState& transformState) const
 {
     // First get the transform state's point into the block flow thread's physical coordinate space.

Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.h (167981 => 167982)


--- trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.h	2014-04-30 04:54:07 UTC (rev 167981)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.h	2014-04-30 05:15:34 UTC (rev 167982)
@@ -109,6 +109,7 @@
     virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
     
     virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const override;
+    virtual LayoutSize offsetFromContainer(RenderObject*, const LayoutPoint&, bool* offsetDependsOnPoint = nullptr) const override;
     
 private:
     virtual const char* renderName() const override;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to