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

Unified Diff: Source/core/layout/LayoutMultiColumnSet.cpp

Issue 1122323002: Cleanup: Remove LayoutRegion. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase master Created 5 years, 7 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
« no previous file with comments | « Source/core/layout/LayoutMultiColumnSet.h ('k') | Source/core/layout/LayoutObject.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/layout/LayoutMultiColumnSet.cpp
diff --git a/Source/core/layout/LayoutMultiColumnSet.cpp b/Source/core/layout/LayoutMultiColumnSet.cpp
index 4d11b85a5109e5726ccf59bdefebe31301a76760..76f0c23fdff7d35d2ee1540b1343a08e3386c2e8 100644
--- a/Source/core/layout/LayoutMultiColumnSet.cpp
+++ b/Source/core/layout/LayoutMultiColumnSet.cpp
@@ -34,8 +34,9 @@
namespace blink {
LayoutMultiColumnSet::LayoutMultiColumnSet(LayoutFlowThread* flowThread)
- : LayoutRegion(0, flowThread)
+ : LayoutBlockFlow(0)
, m_fragmentainerGroups(*this)
+ , m_flowThread(flowThread)
{
}
@@ -101,6 +102,37 @@ LayoutUnit LayoutMultiColumnSet::logicalBottomInFlowThread() const
return lastFragmentainerGroup().logicalBottomInFlowThread();
}
+LayoutRect LayoutMultiColumnSet::flowThreadPortionOverflowRect() const
+{
+ return overflowRectForFlowThreadPortion(flowThreadPortionRect(), !previousSiblingMultiColumnSet(), !nextSiblingMultiColumnSet());
+}
+
+LayoutRect LayoutMultiColumnSet::overflowRectForFlowThreadPortion(const LayoutRect& flowThreadPortionRect, bool isFirstPortion, bool isLastPortion) const
+{
+ if (hasOverflowClip())
+ return flowThreadPortionRect;
+
+ LayoutRect flowThreadOverflow = m_flowThread->visualOverflowRect();
+
+ // Only clip along the flow thread axis.
+ LayoutRect clipRect;
+ if (m_flowThread->isHorizontalWritingMode()) {
+ LayoutUnit minY = isFirstPortion ? flowThreadOverflow.y() : flowThreadPortionRect.y();
+ LayoutUnit maxY = isLastPortion ? std::max(flowThreadPortionRect.maxY(), flowThreadOverflow.maxY()) : flowThreadPortionRect.maxY();
+ LayoutUnit minX = std::min(flowThreadPortionRect.x(), flowThreadOverflow.x());
+ LayoutUnit maxX = std::max(flowThreadPortionRect.maxX(), flowThreadOverflow.maxX());
+ clipRect = LayoutRect(minX, minY, maxX - minX, maxY - minY);
+ } else {
+ LayoutUnit minX = isFirstPortion ? flowThreadOverflow.x() : flowThreadPortionRect.x();
+ LayoutUnit maxX = isLastPortion ? std::max(flowThreadPortionRect.maxX(), flowThreadOverflow.maxX()) : flowThreadPortionRect.maxX();
+ LayoutUnit minY = std::min(flowThreadPortionRect.y(), (flowThreadOverflow.y()));
+ LayoutUnit maxY = std::max(flowThreadPortionRect.y(), (flowThreadOverflow.maxY()));
+ clipRect = LayoutRect(minX, minY, maxX - minX, maxY - minY);
+ }
+
+ return clipRect;
+}
+
bool LayoutMultiColumnSet::heightIsAuto() const
{
LayoutMultiColumnFlowThread* flowThread = multiColumnFlowThread();
@@ -189,6 +221,12 @@ void LayoutMultiColumnSet::expandToEncompassFlowThreadContentsIfNeeded()
m_fragmentainerGroups.last().expandToEncompassFlowThreadOverflow();
}
+void LayoutMultiColumnSet::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
+{
+ minLogicalWidth = m_flowThread->minPreferredLogicalWidth();
+ maxLogicalWidth = m_flowThread->maxPreferredLogicalWidth();
+}
+
void LayoutMultiColumnSet::computeLogicalHeight(LayoutUnit, LayoutUnit logicalTop, LogicalExtentComputedValues& computedValues) const
{
LayoutUnit logicalHeight;
@@ -248,37 +286,31 @@ void LayoutMultiColumnSet::addOverflowFromChildren()
void LayoutMultiColumnSet::insertedIntoTree()
{
- LayoutRegion::insertedIntoTree();
-
- attachRegion();
+ LayoutBlockFlow::insertedIntoTree();
+ attachToFlowThread();
}
void LayoutMultiColumnSet::willBeRemovedFromTree()
{
- LayoutRegion::willBeRemovedFromTree();
-
- detachRegion();
+ LayoutBlockFlow::willBeRemovedFromTree();
+ detachFromFlowThread();
}
-void LayoutMultiColumnSet::attachRegion()
+void LayoutMultiColumnSet::attachToFlowThread()
{
if (documentBeingDestroyed())
return;
- // A region starts off invalid.
- setIsValid(false);
-
if (!m_flowThread)
return;
- // Only after adding the region to the thread, the region is marked to be valid.
- m_flowThread->addRegionToThread(this);
+ m_flowThread->addColumnSetToThread(this);
}
-void LayoutMultiColumnSet::detachRegion()
+void LayoutMultiColumnSet::detachFromFlowThread()
{
if (m_flowThread) {
- m_flowThread->removeRegionFromThread(this);
+ m_flowThread->removeColumnSetFromThread(this);
m_flowThread = 0;
}
}
« no previous file with comments | « Source/core/layout/LayoutMultiColumnSet.h ('k') | Source/core/layout/LayoutObject.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698