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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 addOverflowFromBlockChildren(); | 383 addOverflowFromBlockChildren(); |
384 LayoutUnit layoutOverflowLogicalBottom = (isHorizontalWritingMode() ? la
youtOverflowRect().maxY() : layoutOverflowRect().maxX()) - borderBefore() - padd
ingBefore(); | 384 LayoutUnit layoutOverflowLogicalBottom = (isHorizontalWritingMode() ? la
youtOverflowRect().maxY() : layoutOverflowRect().maxX()) - borderBefore() - padd
ingBefore(); |
385 m_overflow = savedOverflow.release(); | 385 m_overflow = savedOverflow.release(); |
386 | 386 |
387 if (!hasSpecifiedPageLogicalHeight && shouldRelayoutForPagination(pageLo
gicalHeight, layoutOverflowLogicalBottom)) { | 387 if (!hasSpecifiedPageLogicalHeight && shouldRelayoutForPagination(pageLo
gicalHeight, layoutOverflowLogicalBottom)) { |
388 statePusher.pop(); | 388 statePusher.pop(); |
389 setEverHadLayout(true); | 389 setEverHadLayout(true); |
390 return false; | 390 return false; |
391 } | 391 } |
392 | 392 |
393 setColumnCountAndHeight(ceilf((float)layoutOverflowLogicalBottom / pageL
ogicalHeight), pageLogicalHeight); | 393 setColumnCountAndHeight(ceilf(layoutOverflowLogicalBottom.toFloat() / pa
geLogicalHeight.toFloat()), pageLogicalHeight.toFloat()); |
394 } | 394 } |
395 | 395 |
396 if (shouldBreakAtLineToAvoidWidow()) { | 396 if (shouldBreakAtLineToAvoidWidow()) { |
397 statePusher.pop(); | 397 statePusher.pop(); |
398 setEverHadLayout(true); | 398 setEverHadLayout(true); |
399 return false; | 399 return false; |
400 } | 400 } |
401 | 401 |
402 // Calculate our new height. | 402 // Calculate our new height. |
403 LayoutUnit oldHeight = logicalHeight(); | 403 LayoutUnit oldHeight = logicalHeight(); |
(...skipping 2439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2843 RenderBlockFlow::RenderBlockFlowRareData& RenderBlockFlow::ensureRareData() | 2843 RenderBlockFlow::RenderBlockFlowRareData& RenderBlockFlow::ensureRareData() |
2844 { | 2844 { |
2845 if (m_rareData) | 2845 if (m_rareData) |
2846 return *m_rareData; | 2846 return *m_rareData; |
2847 | 2847 |
2848 m_rareData = adoptPtr(new RenderBlockFlowRareData(this)); | 2848 m_rareData = adoptPtr(new RenderBlockFlowRareData(this)); |
2849 return *m_rareData; | 2849 return *m_rareData; |
2850 } | 2850 } |
2851 | 2851 |
2852 } // namespace WebCore | 2852 } // namespace WebCore |
OLD | NEW |