Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(560)

Unified Diff: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc

Issue 2850893003: Add container_block_offset,top_offset to NGFloatingObject. (Closed)
Patch Set: add-inline-to-block-flow-with-block-children-that-do-not-need-anonymous-boxes.html is still broken Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
index 2f108e1c039b1b000f73d21da54b39857489a291..67efa0412ba77cbfcd3f1c57e11c738efadfc3e7 100644
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
@@ -43,9 +43,10 @@ RefPtr<NGConstraintSpace> CreateConstraintSpaceForFloat(
.ToConstraintSpace(FromPlatformWritingMode(style.GetWritingMode()));
}
-NGLogicalOffset GetOriginPointForFloats(const NGConstraintSpace& space,
- LayoutUnit content_size) {
- NGLogicalOffset origin_point = space.BfcOffset();
+NGLogicalOffset GetOriginPointForFloats(
+ const NGLogicalOffset& container_bfc_offset,
+ LayoutUnit content_size) {
+ NGLogicalOffset origin_point = container_bfc_offset;
origin_point.block_offset += content_size;
return origin_point;
}
@@ -295,7 +296,7 @@ bool NGInlineLayoutAlgorithm::CreateLineUpToLastBreakOpportunity() {
#endif
NGLogicalOffset origin_point =
- GetOriginPointForFloats(ConstraintSpace(), content_size_);
+ GetOriginPointForFloats(ContainerBfcOffset(), content_size_);
PositionPendingFloats(origin_point.block_offset, &container_builder_,
MutableConstraintSpace());
FindNextLayoutOpportunity();
@@ -375,16 +376,16 @@ void NGInlineLayoutAlgorithm::LayoutAndPositionFloat(
ToNGPhysicalBoxFragment(layout_result->PhysicalFragment().Get()));
NGLogicalOffset origin_offset =
- GetOriginPointForFloats(ConstraintSpace(), content_size_);
- NGLogicalOffset from_offset = ConstraintSpace().BfcOffset();
+ GetOriginPointForFloats(ContainerBfcOffset(), content_size_);
const ComputedStyle& float_style = node->Style();
NGBoxStrut margins = ComputeMargins(ConstraintSpace(), float_style,
ConstraintSpace().WritingMode(),
ConstraintSpace().Direction());
RefPtr<NGFloatingObject> floating_object = NGFloatingObject::Create(
float_style, float_space->WritingMode(), current_opportunity_.size,
- origin_offset, from_offset, margins,
+ origin_offset, ContainerBfcOffset(), margins,
layout_result->PhysicalFragment().Get());
+ floating_object->parent_bfc_block_offset = ContainerBfcOffset().block_offset;
bool float_does_not_fit = end_position + float_fragment.InlineSize() >
current_opportunity_.InlineSize();
« no previous file with comments | « third_party/WebKit/LayoutTests/TestExpectations ('k') | third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698