OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011 Apple 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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
228 | 228 |
229 { | 229 { |
230 // LayoutState needs this deliberate scope to pop before updating scroll | 230 // LayoutState needs this deliberate scope to pop before updating scroll |
231 // information (which may trigger relayout). | 231 // information (which may trigger relayout). |
232 LayoutState state(*this); | 232 LayoutState state(*this); |
233 | 233 |
234 LayoutSize previous_size = Size(); | 234 LayoutSize previous_size = Size(); |
235 | 235 |
236 // We need to clear both own and containingBlock override sizes to | 236 // We need to clear both own and containingBlock override sizes to |
237 // ensure we get the same result when grid's intrinsic size is | 237 // ensure we get the same result when grid's intrinsic size is |
238 // computed again in the updateLogicalWidth call bellow. | 238 // computed again in the updateLogicalWidth call bellow. |
Manuel Rego
2017/04/21 05:21:11
This comment needs to be updated now.
jfernandez
2017/04/21 08:31:47
Well, the comment still applies, IMO. It's just th
Manuel Rego
2017/04/21 08:51:51
But the comment says:
// We need to clear both **o
| |
239 if (SizesLogicalWidthToFitContent(StyleRef().LogicalWidth()) || | 239 for (auto* child = FirstInFlowChildBox(); child; |
240 StyleRef().LogicalWidth().IsIntrinsicOrAuto()) { | 240 child = child->NextInFlowSiblingBox()) { |
241 for (auto* child = FirstInFlowChildBox(); child; | 241 child->ClearOverrideSize(); |
242 child = child->NextInFlowSiblingBox()) { | 242 if (SizesLogicalWidthToFitContent(StyleRef().LogicalWidth()) || |
243 StyleRef().LogicalWidth().IsIntrinsicOrAuto()) { | |
243 if (!IsOrthogonalChild(*child)) | 244 if (!IsOrthogonalChild(*child)) |
244 continue; | 245 continue; |
245 child->ClearOverrideSize(); | |
246 child->ClearContainingBlockOverrideSize(); | 246 child->ClearContainingBlockOverrideSize(); |
247 child->ForceLayout(); | 247 child->ForceLayout(); |
248 } | 248 } |
249 } | 249 } |
250 | 250 |
251 UpdateLogicalWidth(); | 251 UpdateLogicalWidth(); |
252 has_definite_logical_height_ = HasDefiniteLogicalHeight(); | 252 has_definite_logical_height_ = HasDefiniteLogicalHeight(); |
253 | 253 |
254 TextAutosizer::LayoutScope text_autosizer_layout_scope(this, &layout_scope); | 254 TextAutosizer::LayoutScope text_autosizer_layout_scope(this, &layout_scope); |
255 | 255 |
(...skipping 1264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1520 const LayoutBox& child, | 1520 const LayoutBox& child, |
1521 GridTrackSizingDirection direction) const { | 1521 GridTrackSizingDirection direction) const { |
1522 return !IsOrthogonalChild(child) | 1522 return !IsOrthogonalChild(child) |
1523 ? direction | 1523 ? direction |
1524 : (direction == kForColumns ? kForRows : kForColumns); | 1524 : (direction == kForColumns ? kForRows : kForColumns); |
1525 } | 1525 } |
1526 | 1526 |
1527 // FIXME: This logic is shared by LayoutFlexibleBox, so it should be moved to | 1527 // FIXME: This logic is shared by LayoutFlexibleBox, so it should be moved to |
1528 // LayoutBox. | 1528 // LayoutBox. |
1529 void LayoutGrid::ApplyStretchAlignmentToChildIfNeeded(LayoutBox& child) { | 1529 void LayoutGrid::ApplyStretchAlignmentToChildIfNeeded(LayoutBox& child) { |
1530 // We clear height override values because we will decide now whether it's | |
1531 // allowed or not, evaluating the conditions which might have changed since | |
1532 // the old values were set. | |
1533 child.ClearOverrideLogicalContentHeight(); | |
1534 | |
1535 GridTrackSizingDirection child_block_direction = | 1530 GridTrackSizingDirection child_block_direction = |
1536 FlowAwareDirectionForChild(child, kForRows); | 1531 FlowAwareDirectionForChild(child, kForRows); |
1537 bool block_flow_is_column_axis = child_block_direction == kForRows; | 1532 bool block_flow_is_column_axis = child_block_direction == kForRows; |
1538 bool allowed_to_stretch_child_block_size = | 1533 bool allowed_to_stretch_child_block_size = |
1539 block_flow_is_column_axis ? AllowedToStretchChildAlongColumnAxis(child) | 1534 block_flow_is_column_axis ? AllowedToStretchChildAlongColumnAxis(child) |
1540 : AllowedToStretchChildAlongRowAxis(child); | 1535 : AllowedToStretchChildAlongRowAxis(child); |
1541 if (allowed_to_stretch_child_block_size) { | 1536 if (allowed_to_stretch_child_block_size) { |
1542 LayoutUnit stretched_logical_height = | 1537 LayoutUnit stretched_logical_height = |
1543 AvailableAlignmentSpaceForChildBeforeStretching( | 1538 AvailableAlignmentSpaceForChildBeforeStretching( |
1544 OverrideContainingBlockContentSizeForChild(child, | 1539 OverrideContainingBlockContentSizeForChild(child, |
(...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2357 if (direction == kForRows) | 2352 if (direction == kForRows) |
2358 return grid.NumTracks(kForRows); | 2353 return grid.NumTracks(kForRows); |
2359 | 2354 |
2360 return grid.NumTracks(kForRows) | 2355 return grid.NumTracks(kForRows) |
2361 ? grid.NumTracks(kForColumns) | 2356 ? grid.NumTracks(kForColumns) |
2362 : GridPositionsResolver::ExplicitGridColumnCount( | 2357 : GridPositionsResolver::ExplicitGridColumnCount( |
2363 StyleRef(), grid.AutoRepeatTracks(kForColumns)); | 2358 StyleRef(), grid.AutoRepeatTracks(kForColumns)); |
2364 } | 2359 } |
2365 | 2360 |
2366 } // namespace blink | 2361 } // namespace blink |
OLD | NEW |