Chromium Code Reviews| 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 2464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2475 | 2475 |
| 2476 void LayoutGrid::prepareChildForPositionedLayout(LayoutBox& child) { | 2476 void LayoutGrid::prepareChildForPositionedLayout(LayoutBox& child) { |
| 2477 ASSERT(child.isOutOfFlowPositioned()); | 2477 ASSERT(child.isOutOfFlowPositioned()); |
| 2478 child.containingBlock()->insertPositionedObject(&child); | 2478 child.containingBlock()->insertPositionedObject(&child); |
| 2479 | 2479 |
| 2480 PaintLayer* childLayer = child.layer(); | 2480 PaintLayer* childLayer = child.layer(); |
| 2481 childLayer->setStaticInlinePosition(borderAndPaddingStart()); | 2481 childLayer->setStaticInlinePosition(borderAndPaddingStart()); |
| 2482 childLayer->setStaticBlockPosition(borderAndPaddingBefore()); | 2482 childLayer->setStaticBlockPosition(borderAndPaddingBefore()); |
| 2483 } | 2483 } |
| 2484 | 2484 |
| 2485 void LayoutGrid::layoutPositionedObjects(bool relayoutChildren, | 2485 void LayoutGrid::layoutPositionedObject(LayoutBox* child, |
|
jfernandez
2016/11/18 16:18:22
Ditto.
| |
| 2486 PositionedLayoutBehavior info) { | 2486 bool relayoutChildren, |
| 2487 TrackedLayoutBoxListHashSet* positionedDescendants = positionedObjects(); | 2487 PositionedLayoutBehavior info) { |
| 2488 if (!positionedDescendants) | 2488 if (!isOrthogonalChild(*child)) { |
| 2489 return; | 2489 // FIXME: Properly support orthogonal writing mode. |
| 2490 | |
| 2491 for (auto* child : *positionedDescendants) { | |
| 2492 if (isOrthogonalChild(*child)) { | |
| 2493 // FIXME: Properly support orthogonal writing mode. | |
| 2494 continue; | |
| 2495 } | |
| 2496 | 2490 |
| 2497 LayoutUnit columnOffset = LayoutUnit(); | 2491 LayoutUnit columnOffset = LayoutUnit(); |
| 2498 LayoutUnit columnBreadth = LayoutUnit(); | 2492 LayoutUnit columnBreadth = LayoutUnit(); |
| 2499 offsetAndBreadthForPositionedChild(*child, ForColumns, columnOffset, | 2493 offsetAndBreadthForPositionedChild(*child, ForColumns, columnOffset, |
| 2500 columnBreadth); | 2494 columnBreadth); |
| 2501 LayoutUnit rowOffset = LayoutUnit(); | 2495 LayoutUnit rowOffset = LayoutUnit(); |
| 2502 LayoutUnit rowBreadth = LayoutUnit(); | 2496 LayoutUnit rowBreadth = LayoutUnit(); |
| 2503 offsetAndBreadthForPositionedChild(*child, ForRows, rowOffset, rowBreadth); | 2497 offsetAndBreadthForPositionedChild(*child, ForRows, rowOffset, rowBreadth); |
| 2504 | 2498 |
| 2505 child->setOverrideContainingBlockContentLogicalWidth(columnBreadth); | 2499 child->setOverrideContainingBlockContentLogicalWidth(columnBreadth); |
| 2506 child->setOverrideContainingBlockContentLogicalHeight(rowBreadth); | 2500 child->setOverrideContainingBlockContentLogicalHeight(rowBreadth); |
| 2507 child->setExtraInlineOffset(columnOffset); | 2501 child->setExtraInlineOffset(columnOffset); |
| 2508 child->setExtraBlockOffset(rowOffset); | 2502 child->setExtraBlockOffset(rowOffset); |
| 2509 | 2503 |
| 2510 if (child->parent() == this) { | 2504 if (child->parent() == this) { |
| 2511 PaintLayer* childLayer = child->layer(); | 2505 PaintLayer* childLayer = child->layer(); |
| 2512 childLayer->setStaticInlinePosition(borderStart() + columnOffset); | 2506 childLayer->setStaticInlinePosition(borderStart() + columnOffset); |
| 2513 childLayer->setStaticBlockPosition(borderBefore() + rowOffset); | 2507 childLayer->setStaticBlockPosition(borderBefore() + rowOffset); |
| 2514 } | 2508 } |
| 2515 } | 2509 } |
| 2516 | 2510 |
| 2517 LayoutBlock::layoutPositionedObjects(relayoutChildren, info); | 2511 LayoutBlock::layoutPositionedObject(child, relayoutChildren, info); |
| 2518 } | 2512 } |
| 2519 | 2513 |
| 2520 void LayoutGrid::offsetAndBreadthForPositionedChild( | 2514 void LayoutGrid::offsetAndBreadthForPositionedChild( |
| 2521 const LayoutBox& child, | 2515 const LayoutBox& child, |
| 2522 GridTrackSizingDirection direction, | 2516 GridTrackSizingDirection direction, |
| 2523 LayoutUnit& offset, | 2517 LayoutUnit& offset, |
| 2524 LayoutUnit& breadth) { | 2518 LayoutUnit& breadth) { |
| 2525 ASSERT(!isOrthogonalChild(child)); | 2519 ASSERT(!isOrthogonalChild(child)); |
| 2526 bool isForColumns = direction == ForColumns; | 2520 bool isForColumns = direction == ForColumns; |
| 2527 | 2521 |
| (...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3495 if (!m_gridItemArea.isEmpty()) | 3489 if (!m_gridItemArea.isEmpty()) |
| 3496 GridPainter(*this).paintChildren(paintInfo, paintOffset); | 3490 GridPainter(*this).paintChildren(paintInfo, paintOffset); |
| 3497 } | 3491 } |
| 3498 | 3492 |
| 3499 bool LayoutGrid::cachedHasDefiniteLogicalHeight() const { | 3493 bool LayoutGrid::cachedHasDefiniteLogicalHeight() const { |
| 3500 SECURITY_DCHECK(m_hasDefiniteLogicalHeight); | 3494 SECURITY_DCHECK(m_hasDefiniteLogicalHeight); |
| 3501 return m_hasDefiniteLogicalHeight.value(); | 3495 return m_hasDefiniteLogicalHeight.value(); |
| 3502 } | 3496 } |
| 3503 | 3497 |
| 3504 } // namespace blink | 3498 } // namespace blink |
| OLD | NEW |