| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/layout/MultiColumnFragmentainerGroup.h" | 5 #include "core/layout/MultiColumnFragmentainerGroup.h" |
| 6 | 6 |
| 7 #include "core/layout/ColumnBalancer.h" | 7 #include "core/layout/ColumnBalancer.h" |
| 8 #include "core/layout/FragmentationContext.h" | 8 #include "core/layout/FragmentationContext.h" |
| 9 #include "core/layout/LayoutMultiColumnSet.h" | 9 #include "core/layout/LayoutMultiColumnSet.h" |
| 10 | 10 |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 fragment.paginationClip = flowThreadPortionOverflowRectAt(i); | 260 fragment.paginationClip = flowThreadPortionOverflowRectAt(i); |
| 261 // Flip it into more a physical (PaintLayer-style) rectangle. | 261 // Flip it into more a physical (PaintLayer-style) rectangle. |
| 262 flowThread->flipForWritingMode(fragment.paginationClip); | 262 flowThread->flipForWritingMode(fragment.paginationClip); |
| 263 | 263 |
| 264 fragments.append(fragment); | 264 fragments.append(fragment); |
| 265 } | 265 } |
| 266 } | 266 } |
| 267 | 267 |
| 268 LayoutRect MultiColumnFragmentainerGroup::calculateOverflow() const | 268 LayoutRect MultiColumnFragmentainerGroup::calculateOverflow() const |
| 269 { | 269 { |
| 270 unsigned columnCount = actualColumnCount(); | 270 // Note that we just return the bounding rectangle of the column boxes here.
We currently don't |
| 271 if (!columnCount) | 271 // examine overflow caused by the actual content that ends up in each column
. |
| 272 return LayoutRect(); | 272 LayoutRect overflowRect; |
| 273 return columnRectAt(columnCount - 1); | 273 if (unsigned columnCount = actualColumnCount()) { |
| 274 overflowRect = columnRectAt(0); |
| 275 if (columnCount > 1) |
| 276 overflowRect.uniteEvenIfEmpty(columnRectAt(columnCount - 1)); |
| 277 } |
| 278 return overflowRect; |
| 274 } | 279 } |
| 275 | 280 |
| 276 unsigned MultiColumnFragmentainerGroup::actualColumnCount() const | 281 unsigned MultiColumnFragmentainerGroup::actualColumnCount() const |
| 277 { | 282 { |
| 278 // We must always return a value of 1 or greater. Column count = 0 is a mean
ingless situation, | 283 // We must always return a value of 1 or greater. Column count = 0 is a mean
ingless situation, |
| 279 // and will confuse and cause problems in other parts of the code. | 284 // and will confuse and cause problems in other parts of the code. |
| 280 if (!m_columnHeight) | 285 if (!m_columnHeight) |
| 281 return 1; | 286 return 1; |
| 282 | 287 |
| 283 // Our flow thread portion determines our column count. We have as many colu
mns as needed to fit | 288 // Our flow thread portion determines our column count. We have as many colu
mns as needed to fit |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 535 append(MultiColumnFragmentainerGroup(m_columnSet)); | 540 append(MultiColumnFragmentainerGroup(m_columnSet)); |
| 536 return last(); | 541 return last(); |
| 537 } | 542 } |
| 538 | 543 |
| 539 void MultiColumnFragmentainerGroupList::deleteExtraGroups() | 544 void MultiColumnFragmentainerGroupList::deleteExtraGroups() |
| 540 { | 545 { |
| 541 shrink(1); | 546 shrink(1); |
| 542 } | 547 } |
| 543 | 548 |
| 544 } // namespace blink | 549 } // namespace blink |
| OLD | NEW |