| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 if (minColumnCount >= desiredColumnCount) { | 244 if (minColumnCount >= desiredColumnCount) { |
| 245 // The forced page breaks are in control of the balancing. Just set the
column height to the | 245 // The forced page breaks are in control of the balancing. Just set the
column height to the |
| 246 // maximum page break distance. | 246 // maximum page break distance. |
| 247 if (!pageLogicalHeight) { | 247 if (!pageLogicalHeight) { |
| 248 LayoutUnit distanceBetweenBreaks = max<LayoutUnit>(colInfo->maximumD
istanceBetweenForcedBreaks(), | 248 LayoutUnit distanceBetweenBreaks = max<LayoutUnit>(colInfo->maximumD
istanceBetweenForcedBreaks(), |
| 249 view()->layoutState()->pageLogicalOffset(*this, borderBefore() +
paddingBefore() + layoutOverflowLogicalBottom) - colInfo->forcedBreakOffset()); | 249 view()->layoutState()->pageLogicalOffset(*this, borderBefore() +
paddingBefore() + layoutOverflowLogicalBottom) - colInfo->forcedBreakOffset()); |
| 250 columnHeight = max(colInfo->minimumColumnHeight(), distanceBetweenBr
eaks); | 250 columnHeight = max(colInfo->minimumColumnHeight(), distanceBetweenBr
eaks); |
| 251 } | 251 } |
| 252 } else if (layoutOverflowLogicalBottom > boundedMultiply(pageLogicalHeight,
desiredColumnCount)) { | 252 } else if (layoutOverflowLogicalBottom > boundedMultiply(pageLogicalHeight,
desiredColumnCount)) { |
| 253 // Now that we know the intrinsic height of the columns, we have to reba
lance them. | 253 // Now that we know the intrinsic height of the columns, we have to reba
lance them. |
| 254 columnHeight = max<LayoutUnit>(colInfo->minimumColumnHeight(), ceilf((fl
oat)layoutOverflowLogicalBottom / desiredColumnCount)); | 254 columnHeight = max<LayoutUnit>(colInfo->minimumColumnHeight(), ceilf(lay
outOverflowLogicalBottom.toFloat() / desiredColumnCount)); |
| 255 } | 255 } |
| 256 | 256 |
| 257 if (columnHeight && columnHeight != pageLogicalHeight) { | 257 if (columnHeight && columnHeight != pageLogicalHeight) { |
| 258 pageLogicalHeight = columnHeight; | 258 pageLogicalHeight = columnHeight; |
| 259 return true; | 259 return true; |
| 260 } | 260 } |
| 261 | 261 |
| 262 return false; | 262 return false; |
| 263 } | 263 } |
| 264 | 264 |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 addOverflowFromBlockChildren(); | 379 addOverflowFromBlockChildren(); |
| 380 LayoutUnit layoutOverflowLogicalBottom = (isHorizontalWritingMode() ? la
youtOverflowRect().maxY() : layoutOverflowRect().maxX()) - borderBefore() - padd
ingBefore(); | 380 LayoutUnit layoutOverflowLogicalBottom = (isHorizontalWritingMode() ? la
youtOverflowRect().maxY() : layoutOverflowRect().maxX()) - borderBefore() - padd
ingBefore(); |
| 381 m_overflow = savedOverflow.release(); | 381 m_overflow = savedOverflow.release(); |
| 382 | 382 |
| 383 if (!hasSpecifiedPageLogicalHeight && shouldRelayoutForPagination(pageLo
gicalHeight, layoutOverflowLogicalBottom)) { | 383 if (!hasSpecifiedPageLogicalHeight && shouldRelayoutForPagination(pageLo
gicalHeight, layoutOverflowLogicalBottom)) { |
| 384 statePusher.pop(); | 384 statePusher.pop(); |
| 385 setEverHadLayout(true); | 385 setEverHadLayout(true); |
| 386 return false; | 386 return false; |
| 387 } | 387 } |
| 388 | 388 |
| 389 setColumnCountAndHeight(ceilf((float)layoutOverflowLogicalBottom / pageL
ogicalHeight), pageLogicalHeight); | 389 setColumnCountAndHeight(ceilf(layoutOverflowLogicalBottom.toFloat() / pa
geLogicalHeight.toFloat()), pageLogicalHeight.toFloat()); |
| 390 } | 390 } |
| 391 | 391 |
| 392 if (shouldBreakAtLineToAvoidWidow()) { | 392 if (shouldBreakAtLineToAvoidWidow()) { |
| 393 statePusher.pop(); | 393 statePusher.pop(); |
| 394 setEverHadLayout(true); | 394 setEverHadLayout(true); |
| 395 return false; | 395 return false; |
| 396 } | 396 } |
| 397 | 397 |
| 398 // Calculate our new height. | 398 // Calculate our new height. |
| 399 LayoutUnit oldHeight = logicalHeight(); | 399 LayoutUnit oldHeight = logicalHeight(); |
| (...skipping 2422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2822 RenderBlockFlow::RenderBlockFlowRareData& RenderBlockFlow::ensureRareData() | 2822 RenderBlockFlow::RenderBlockFlowRareData& RenderBlockFlow::ensureRareData() |
| 2823 { | 2823 { |
| 2824 if (m_rareData) | 2824 if (m_rareData) |
| 2825 return *m_rareData; | 2825 return *m_rareData; |
| 2826 | 2826 |
| 2827 m_rareData = adoptPtr(new RenderBlockFlowRareData(this)); | 2827 m_rareData = adoptPtr(new RenderBlockFlowRareData(this)); |
| 2828 return *m_rareData; | 2828 return *m_rareData; |
| 2829 } | 2829 } |
| 2830 | 2830 |
| 2831 } // namespace WebCore | 2831 } // namespace WebCore |
| OLD | NEW |