| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/layout/GridTrackSizingAlgorithm.h" | 5 #include "core/layout/GridTrackSizingAlgorithm.h" |
| 6 | 6 |
| 7 #include "core/layout/Grid.h" | 7 #include "core/layout/Grid.h" |
| 8 #include "core/layout/LayoutGrid.h" | 8 #include "core/layout/LayoutGrid.h" |
| 9 #include "platform/LengthFunctions.h" | 9 #include "platform/LengthFunctions.h" |
| 10 | 10 |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 availableLogicalSpace); | 409 availableLogicalSpace); |
| 410 } | 410 } |
| 411 | 411 |
| 412 LayoutUnit DefiniteSizeStrategy::minLogicalWidthForChild( | 412 LayoutUnit DefiniteSizeStrategy::minLogicalWidthForChild( |
| 413 LayoutBox& child, | 413 LayoutBox& child, |
| 414 Length childMinSize, | 414 Length childMinSize, |
| 415 GridTrackSizingDirection childInlineDirection) const { | 415 GridTrackSizingDirection childInlineDirection) const { |
| 416 LayoutUnit marginLogicalWidth = | 416 LayoutUnit marginLogicalWidth = |
| 417 computeMarginLogicalSizeForChild(InlineDirection, layoutGrid(), child); | 417 computeMarginLogicalSizeForChild(InlineDirection, layoutGrid(), child); |
| 418 return child.computeLogicalWidthUsing( | 418 return child.computeLogicalWidthUsing( |
| 419 MinSize, childMinSize, overrideContainingBlockContentSizeForChild( | 419 MinSize, childMinSize, |
| 420 child, childInlineDirection), | 420 overrideContainingBlockContentSizeForChild(child, |
| 421 childInlineDirection), |
| 421 layoutGrid()) + | 422 layoutGrid()) + |
| 422 marginLogicalWidth; | 423 marginLogicalWidth; |
| 423 } | 424 } |
| 424 | 425 |
| 425 void DefiniteSizeStrategy::layoutGridItemForMinSizeComputation( | 426 void DefiniteSizeStrategy::layoutGridItemForMinSizeComputation( |
| 426 LayoutBox& child, | 427 LayoutBox& child, |
| 427 bool overrideSizeHasChanged) const { | 428 bool overrideSizeHasChanged) const { |
| 428 if (overrideSizeHasChanged) | 429 if (overrideSizeHasChanged) |
| 429 child.setNeedsLayout(LayoutInvalidationReason::GridChanged); | 430 child.setNeedsLayout(LayoutInvalidationReason::GridChanged); |
| 430 child.layoutIfNeeded(); | 431 child.layoutIfNeeded(); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 457 | 458 |
| 458 LayoutUnit IndefiniteSizeStrategy::minLogicalWidthForChild( | 459 LayoutUnit IndefiniteSizeStrategy::minLogicalWidthForChild( |
| 459 LayoutBox& child, | 460 LayoutBox& child, |
| 460 Length childMinSize, | 461 Length childMinSize, |
| 461 GridTrackSizingDirection childInlineDirection) const { | 462 GridTrackSizingDirection childInlineDirection) const { |
| 462 // TODO(svillar): we should use marginIntrinsicLogicalWidthForChild() instead | 463 // TODO(svillar): we should use marginIntrinsicLogicalWidthForChild() instead |
| 463 // but it is protected for LayoutObjects. Apparently none of the current tests | 464 // but it is protected for LayoutObjects. Apparently none of the current tests |
| 464 // fail, so we need a test case for this too. | 465 // fail, so we need a test case for this too. |
| 465 LayoutUnit marginLogicalWidth = LayoutUnit(); | 466 LayoutUnit marginLogicalWidth = LayoutUnit(); |
| 466 return child.computeLogicalWidthUsing( | 467 return child.computeLogicalWidthUsing( |
| 467 MinSize, childMinSize, overrideContainingBlockContentSizeForChild( | 468 MinSize, childMinSize, |
| 468 child, childInlineDirection), | 469 overrideContainingBlockContentSizeForChild(child, |
| 470 childInlineDirection), |
| 469 layoutGrid()) + | 471 layoutGrid()) + |
| 470 marginLogicalWidth; | 472 marginLogicalWidth; |
| 471 } | 473 } |
| 472 | 474 |
| 473 void IndefiniteSizeStrategy::layoutGridItemForMinSizeComputation( | 475 void IndefiniteSizeStrategy::layoutGridItemForMinSizeComputation( |
| 474 LayoutBox& child, | 476 LayoutBox& child, |
| 475 bool overrideSizeHasChanged) const { | 477 bool overrideSizeHasChanged) const { |
| 476 if (overrideSizeHasChanged && direction() != ForColumns) | 478 if (overrideSizeHasChanged && direction() != ForColumns) |
| 477 child.setNeedsLayout(LayoutInvalidationReason::GridChanged); | 479 child.setNeedsLayout(LayoutInvalidationReason::GridChanged); |
| 478 child.layoutIfNeeded(); | 480 child.layoutIfNeeded(); |
| (...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1425 DCHECK(m_algorithm.isValidTransition()); | 1427 DCHECK(m_algorithm.isValidTransition()); |
| 1426 DCHECK(!m_algorithm.m_needsSetup); | 1428 DCHECK(!m_algorithm.m_needsSetup); |
| 1427 } | 1429 } |
| 1428 | 1430 |
| 1429 GridTrackSizingAlgorithm::StateMachine::~StateMachine() { | 1431 GridTrackSizingAlgorithm::StateMachine::~StateMachine() { |
| 1430 m_algorithm.advanceNextState(); | 1432 m_algorithm.advanceNextState(); |
| 1431 m_algorithm.m_needsSetup = true; | 1433 m_algorithm.m_needsSetup = true; |
| 1432 } | 1434 } |
| 1433 | 1435 |
| 1434 } // namespace blink | 1436 } // namespace blink |
| OLD | NEW |