Index: third_party/WebKit/Source/core/layout/ng/ng_units.cc |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_units.cc b/third_party/WebKit/Source/core/layout/ng/ng_units.cc |
index b11d1ecc8057723a6c5e5b50260db6971ddb1735..35bf7b1678929c92c79f391e87a9d41b0764d76e 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_units.cc |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_units.cc |
@@ -134,6 +134,16 @@ String NGLogicalOffset::ToString() const { |
return String::format("%dx%d", inline_offset.toInt(), block_offset.toInt()); |
} |
+NGPhysicalOffset NGPhysicalOffset::operator+( |
+ const NGPhysicalOffset& other) const { |
+ return NGPhysicalOffset{this->left + other.left, this->top + other.top}; |
+} |
+ |
+NGPhysicalOffset& NGPhysicalOffset::operator+=(const NGPhysicalOffset& other) { |
+ *this = *this + other; |
+ return *this; |
+} |
+ |
bool NGBoxStrut::IsEmpty() const { |
return *this == NGBoxStrut(); |
} |
@@ -252,4 +262,27 @@ inline NGExclusions& NGExclusions::operator=(const NGExclusions& other) { |
return *this; |
} |
+NGStaticPosition NGStaticPosition::Create(NGWritingMode writing_mode, |
+ TextDirection direction, |
+ NGPhysicalOffset offset) { |
+ NGStaticPosition position; |
+ position.offset = offset; |
+ switch (writing_mode) { |
+ case kHorizontalTopBottom: |
+ position.type = (direction == LTR) ? kTopLeft : kTopRight; |
+ break; |
+ case kVerticalRightLeft: |
+ case kSidewaysRightLeft: |
+ position.type = (direction == LTR) ? kTopRight : kBottomRight; |
+ break; |
+ case kVerticalLeftRight: |
+ position.type = (direction == LTR) ? kTopLeft : kBottomLeft; |
+ break; |
+ case kSidewaysLeftRight: |
+ position.type = (direction == LTR) ? kBottomLeft : kTopLeft; |
+ break; |
+ } |
+ return position; |
+} |
+ |
} // namespace blink |