Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Unified Diff: third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp

Issue 2339973002: Handle exclusive end offsets when translating from flow thread coordinates. (Closed)
Patch Set: Documentation Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
diff --git a/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp b/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
index c361d366aebb7b5cef1f52d602033b60f7728bef..30551e504562a5c89f266da9890ad12836c0f64b 100644
--- a/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
@@ -332,21 +332,26 @@ bool LayoutMultiColumnFlowThread::isPageLogicalHeightKnown() const
return false;
}
-LayoutSize LayoutMultiColumnFlowThread::flowThreadTranslationAtOffset(LayoutUnit offsetInFlowThread, CoordinateSpaceConversion mode) const
+LayoutSize LayoutMultiColumnFlowThread::flowThreadTranslationAtOffset(LayoutUnit offsetInFlowThread, PageBoundaryRule rule, CoordinateSpaceConversion mode) const
{
if (!hasValidColumnSetInfo())
return LayoutSize(0, 0);
LayoutMultiColumnSet* columnSet = columnSetAtBlockOffset(offsetInFlowThread);
if (!columnSet)
return LayoutSize(0, 0);
- return columnSet->flowThreadTranslationAtOffset(offsetInFlowThread, mode);
+ return columnSet->flowThreadTranslationAtOffset(offsetInFlowThread, rule, mode);
}
LayoutSize LayoutMultiColumnFlowThread::flowThreadTranslationAtPoint(const LayoutPoint& flowThreadPoint, CoordinateSpaceConversion mode) const
{
LayoutPoint flippedPoint = flipForWritingMode(flowThreadPoint);
LayoutUnit blockOffset = isHorizontalWritingMode() ? flippedPoint.y() : flippedPoint.x();
- return flowThreadTranslationAtOffset(blockOffset, mode);
+
+ // If block direction is flipped, points at a column boundary belong in the former column, not
+ // the latter.
+ PageBoundaryRule rule = hasFlippedBlocksWritingMode() ? AssociateWithFormerPage : AssociateWithLatterPage;
+
+ return flowThreadTranslationAtOffset(blockOffset, rule, mode);
}
LayoutPoint LayoutMultiColumnFlowThread::flowThreadPointToVisualPoint(const LayoutPoint& flowThreadPoint) const

Powered by Google App Engine
This is Rietveld 408576698