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 |