| 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 4106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4117 return false; | 4117 return false; |
| 4118 } | 4118 } |
| 4119 const LayoutBlock* containingBlock = this->containingBlock(); | 4119 const LayoutBlock* containingBlock = this->containingBlock(); |
| 4120 if (!containingBlock || !containingBlock->isLayoutBlockFlow()) | 4120 if (!containingBlock || !containingBlock->isLayoutBlockFlow()) |
| 4121 return false; | 4121 return false; |
| 4122 const LayoutBlockFlow* containingBlockFlow = | 4122 const LayoutBlockFlow* containingBlockFlow = |
| 4123 toLayoutBlockFlow(containingBlock); | 4123 toLayoutBlockFlow(containingBlock); |
| 4124 // If children are inline, allow the strut. We are probably a float. | 4124 // If children are inline, allow the strut. We are probably a float. |
| 4125 if (containingBlockFlow->childrenInline()) | 4125 if (containingBlockFlow->childrenInline()) |
| 4126 return true; | 4126 return true; |
| 4127 // If this isn't the first in-flow object, there's a break opportunity before | 4127 for (LayoutBox* sibling = previousSiblingBox(); sibling; |
| 4128 // us, which means that we can allow the strut. | 4128 sibling = sibling->previousSiblingBox()) { |
| 4129 if (previousInFlowSiblingBox()) | 4129 // What happens on the other side of a spanner is none of our concern, so |
| 4130 return true; | 4130 // stop here. Since there's no in-flow box between the previous spanner and |
| 4131 // us, there's no class A break point in front of us. We cannot even |
| 4132 // re-propagate pagination struts to our containing block, since the |
| 4133 // containing block starts in a different column row. |
| 4134 if (sibling->isColumnSpanAll()) |
| 4135 return false; |
| 4136 // If this isn't the first in-flow object, there's a break opportunity |
| 4137 // before us, which means that we can allow the strut. |
| 4138 if (!sibling->isFloatingOrOutOfFlowPositioned()) |
| 4139 return true; |
| 4140 } |
| 4131 // This is a first in-flow child. We'll still allow the strut if it can be | 4141 // This is a first in-flow child. We'll still allow the strut if it can be |
| 4132 // re-propagated to our containing block. | 4142 // re-propagated to our containing block. |
| 4133 return containingBlockFlow->allowsPaginationStrut(); | 4143 return containingBlockFlow->allowsPaginationStrut(); |
| 4134 } | 4144 } |
| 4135 | 4145 |
| 4136 void LayoutBlockFlow::setPaginationStrutPropagatedFromChild(LayoutUnit strut) { | 4146 void LayoutBlockFlow::setPaginationStrutPropagatedFromChild(LayoutUnit strut) { |
| 4137 strut = std::max(strut, LayoutUnit()); | 4147 strut = std::max(strut, LayoutUnit()); |
| 4138 if (!m_rareData) { | 4148 if (!m_rareData) { |
| 4139 if (!strut) | 4149 if (!strut) |
| 4140 return; | 4150 return; |
| (...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4605 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState); | 4615 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState); |
| 4606 } | 4616 } |
| 4607 | 4617 |
| 4608 void LayoutBlockFlow::invalidateDisplayItemClients( | 4618 void LayoutBlockFlow::invalidateDisplayItemClients( |
| 4609 PaintInvalidationReason invalidationReason) const { | 4619 PaintInvalidationReason invalidationReason) const { |
| 4610 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients( | 4620 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients( |
| 4611 invalidationReason); | 4621 invalidationReason); |
| 4612 } | 4622 } |
| 4613 | 4623 |
| 4614 } // namespace blink | 4624 } // namespace blink |
| OLD | NEW |