OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/ng/inline/ng_inline_layout_algorithm.h" | 5 #include "core/layout/ng/inline/ng_inline_layout_algorithm.h" |
6 | 6 |
7 #include "core/layout/ng/inline/ng_bidi_paragraph.h" | 7 #include "core/layout/ng/inline/ng_bidi_paragraph.h" |
8 #include "core/layout/ng/inline/ng_inline_break_token.h" | 8 #include "core/layout/ng/inline/ng_inline_break_token.h" |
9 #include "core/layout/ng/inline/ng_inline_node.h" | 9 #include "core/layout/ng/inline/ng_inline_node.h" |
10 #include "core/layout/ng/inline/ng_line_box_fragment.h" | 10 #include "core/layout/ng/inline/ng_line_box_fragment.h" |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 // TODO(kojii): These are once computed in NGLineBreaker. Should copy to | 265 // TODO(kojii): These are once computed in NGLineBreaker. Should copy to |
266 // NGInlineItemResult to reuse here. | 266 // NGInlineItemResult to reuse here. |
267 NGBoxStrut borders = ComputeBorders(*constraint_space_, *item.Style()); | 267 NGBoxStrut borders = ComputeBorders(*constraint_space_, *item.Style()); |
268 NGBoxStrut paddings = ComputePadding(*constraint_space_, *item.Style()); | 268 NGBoxStrut paddings = ComputePadding(*constraint_space_, *item.Style()); |
269 // TODO(kojii): Set paint edges. | 269 // TODO(kojii): Set paint edges. |
270 box->SetNeedsBoxFragment(position, | 270 box->SetNeedsBoxFragment(position, |
271 borders.block_start + paddings.block_start, | 271 borders.block_start + paddings.block_start, |
272 borders.BlockSum() + paddings.BlockSum()); | 272 borders.BlockSum() + paddings.BlockSum()); |
273 } | 273 } |
274 } else if (item.Type() == NGInlineItem::kCloseTag) { | 274 } else if (item.Type() == NGInlineItem::kCloseTag) { |
| 275 position += item_result.inline_size; |
275 box = box_states_.OnCloseTag(item, &line_box, box, baseline_type_, | 276 box = box_states_.OnCloseTag(item, &line_box, box, baseline_type_, |
276 position); | 277 position); |
| 278 continue; |
277 } else if (item.Type() == NGInlineItem::kAtomicInline) { | 279 } else if (item.Type() == NGInlineItem::kAtomicInline) { |
278 box = PlaceAtomicInline(item, &item_result, position, &line_box, | 280 box = PlaceAtomicInline(item, &item_result, position, &line_box, |
279 &text_builder); | 281 &text_builder); |
280 } else if (item.Type() == NGInlineItem::kOutOfFlowPositioned) { | 282 } else if (item.Type() == NGInlineItem::kOutOfFlowPositioned) { |
281 // TODO(layout-dev): Report the correct static position for the out of | 283 // TODO(layout-dev): Report the correct static position for the out of |
282 // flow descendant. We can't do this here yet as it doesn't know the | 284 // flow descendant. We can't do this here yet as it doesn't know the |
283 // size of the line box. | 285 // size of the line box. |
284 container_builder_.AddOutOfFlowDescendant( | 286 container_builder_.AddOutOfFlowDescendant( |
285 // Absolute positioning blockifies the box's display type. | 287 // Absolute positioning blockifies the box's display type. |
286 // https://drafts.csswg.org/css-display/#transformations | 288 // https://drafts.csswg.org/css-display/#transformations |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 // Margin struts shouldn't need to be passed through like this once we've | 436 // Margin struts shouldn't need to be passed through like this once we've |
435 // removed LayoutInline splitting. | 437 // removed LayoutInline splitting. |
436 if (!container_builder_.BfcOffset()) { | 438 if (!container_builder_.BfcOffset()) { |
437 container_builder_.SetEndMarginStrut(ConstraintSpace().MarginStrut()); | 439 container_builder_.SetEndMarginStrut(ConstraintSpace().MarginStrut()); |
438 } | 440 } |
439 | 441 |
440 return container_builder_.ToBoxFragment(); | 442 return container_builder_.ToBoxFragment(); |
441 } | 443 } |
442 | 444 |
443 } // namespace blink | 445 } // namespace blink |
OLD | NEW |