| 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 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 // and block_start do not match. | 308 // and block_start do not match. |
| 309 | 309 |
| 310 // Up until this point, children are placed so that the dominant baseline is | 310 // Up until this point, children are placed so that the dominant baseline is |
| 311 // at 0. Move them to the final baseline position, and set the logical top of | 311 // at 0. Move them to the final baseline position, and set the logical top of |
| 312 // the line box to the line top. | 312 // the line box to the line top. |
| 313 line_box.MoveChildrenInBlockDirection(baseline); | 313 line_box.MoveChildrenInBlockDirection(baseline); |
| 314 | 314 |
| 315 DCHECK_EQ(line_left_position, LogicalLeftOffset()); | 315 DCHECK_EQ(line_left_position, LogicalLeftOffset()); |
| 316 LayoutUnit inline_size = position - line_left_position; | 316 LayoutUnit inline_size = position - line_left_position; |
| 317 line_box.SetInlineSize(inline_size); | 317 line_box.SetInlineSize(inline_size); |
| 318 |
| 319 // Account for text align property. |
| 320 if (Node()->Style().GetTextAlign() == ETextAlign::kRight) { |
| 321 line_box.MoveChildrenInInlineDirection( |
| 322 current_opportunity_.size.inline_size); |
| 323 } |
| 324 |
| 318 container_builder_.AddChild( | 325 container_builder_.AddChild( |
| 319 line_box.ToLineBoxFragment(), | 326 line_box.ToLineBoxFragment(), |
| 320 {LayoutUnit(), baseline - box_states_.LineBoxState().metrics.ascent}); | 327 {LayoutUnit(), baseline - box_states_.LineBoxState().metrics.ascent}); |
| 321 | 328 |
| 322 max_inline_size_ = std::max(max_inline_size_, inline_size); | 329 max_inline_size_ = std::max(max_inline_size_, inline_size); |
| 323 content_size_ = line_bottom; | 330 content_size_ = line_bottom; |
| 324 return true; | 331 return true; |
| 325 } | 332 } |
| 326 | 333 |
| 327 // TODO(kojii): Currently, this function does not change item_result, but | 334 // TODO(kojii): Currently, this function does not change item_result, but |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 // Margin struts shouldn't need to be passed through like this once we've | 417 // Margin struts shouldn't need to be passed through like this once we've |
| 411 // removed LayoutInline splitting. | 418 // removed LayoutInline splitting. |
| 412 if (!container_builder_.BfcOffset()) { | 419 if (!container_builder_.BfcOffset()) { |
| 413 container_builder_.SetEndMarginStrut(ConstraintSpace().MarginStrut()); | 420 container_builder_.SetEndMarginStrut(ConstraintSpace().MarginStrut()); |
| 414 } | 421 } |
| 415 | 422 |
| 416 return container_builder_.ToBoxFragment(); | 423 return container_builder_.ToBoxFragment(); |
| 417 } | 424 } |
| 418 | 425 |
| 419 } // namespace blink | 426 } // namespace blink |
| OLD | NEW |