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 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1027 // Avoid breaking inside the top margin of a float. | 1027 // Avoid breaking inside the top margin of a float. |
1028 if (strut) { | 1028 if (strut) { |
1029 // If we already had decided to break, just add the margin. The strut so | 1029 // If we already had decided to break, just add the margin. The strut so |
1030 // far only accounts for pushing the top border edge to the next | 1030 // far only accounts for pushing the top border edge to the next |
1031 // fragmentainer. We need to push the margin over as well, because | 1031 // fragmentainer. We need to push the margin over as well, because |
1032 // there's no break opportunity between margin and border. | 1032 // there's no break opportunity between margin and border. |
1033 strut += marginBefore; | 1033 strut += marginBefore; |
1034 } else { | 1034 } else { |
1035 // Even if we didn't break before the border box to the next | 1035 // Even if we didn't break before the border box to the next |
1036 // fragmentainer, we need to check if we can fit the margin before it. | 1036 // fragmentainer, we need to check if we can fit the margin before it. |
1037 if (LayoutUnit pageLogicalHeight = | 1037 if (pageLogicalHeightForOffset(logicalTopMarginEdge)) { |
1038 pageLogicalHeightForOffset(logicalTopMarginEdge)) { | |
1039 LayoutUnit remainingSpace = pageRemainingLogicalHeightForOffset( | 1038 LayoutUnit remainingSpace = pageRemainingLogicalHeightForOffset( |
1040 logicalTopMarginEdge, AssociateWithLatterPage); | 1039 logicalTopMarginEdge, AssociateWithLatterPage); |
1041 if (remainingSpace <= marginBefore) | 1040 if (remainingSpace <= marginBefore) |
1042 strut += remainingSpace; | 1041 strut += remainingSpace; |
1043 } | 1042 } |
1044 } | 1043 } |
1045 } | 1044 } |
1046 if (!strut) { | 1045 if (!strut) { |
1047 // If we are unsplittable and don't fit, move to the next page or column | 1046 // If we are unsplittable and don't fit, move to the next page or column |
1048 // if that helps the situation. | 1047 // if that helps the situation. |
(...skipping 3551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4600 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState); | 4599 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState); |
4601 } | 4600 } |
4602 | 4601 |
4603 void LayoutBlockFlow::invalidateDisplayItemClients( | 4602 void LayoutBlockFlow::invalidateDisplayItemClients( |
4604 PaintInvalidationReason invalidationReason) const { | 4603 PaintInvalidationReason invalidationReason) const { |
4605 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients( | 4604 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients( |
4606 invalidationReason); | 4605 invalidationReason); |
4607 } | 4606 } |
4608 | 4607 |
4609 } // namespace blink | 4608 } // namespace blink |
OLD | NEW |