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