Commit 4d583d43 authored by Scott Violet's avatar Scott Violet Committed by Commit Bot

blink: add support for box-ordinal for LayoutFlexibleBox

This provides mapping in ComputedStyle for box-ordinal.

BUG=993813
TEST=none

Change-Id: I0121a52d3c5ace231e36528f9513afbf39341a4b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1761404Reviewed-by: default avatarChristian Biesinger <cbiesinger@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#688655}
parent 9f7d3bc8
...@@ -61,7 +61,7 @@ LayoutBox* OrderIterator::Next() { ...@@ -61,7 +61,7 @@ LayoutBox* OrderIterator::Next() {
current_child_ = current_child_->NextSiblingBox(); current_child_ = current_child_->NextSiblingBox();
} }
} while (!current_child_ || } while (!current_child_ ||
current_child_->StyleRef().Order() != *order_values_iterator_); ResolvedOrder(*current_child_) != *order_values_iterator_);
return current_child_; return current_child_;
} }
...@@ -72,12 +72,20 @@ void OrderIterator::Reset() { ...@@ -72,12 +72,20 @@ void OrderIterator::Reset() {
is_reset_ = true; is_reset_ = true;
} }
int OrderIterator::ResolvedOrder(const LayoutBox& child) const {
if (container_box_->StyleRef().Display() == EDisplay::kWebkitBox ||
container_box_->StyleRef().Display() == EDisplay::kWebkitInlineBox) {
return child.StyleRef().BoxOrdinalGroup();
}
return child.StyleRef().Order();
}
OrderIteratorPopulator::~OrderIteratorPopulator() { OrderIteratorPopulator::~OrderIteratorPopulator() {
iterator_.Reset(); iterator_.Reset();
} }
void OrderIteratorPopulator::CollectChild(const LayoutBox* child) { void OrderIteratorPopulator::CollectChild(const LayoutBox* child) {
iterator_.order_values_.insert(child->StyleRef().Order()); iterator_.order_values_.insert(iterator_.ResolvedOrder(*child));
} }
} // namespace blink } // namespace blink
...@@ -62,6 +62,9 @@ class OrderIterator { ...@@ -62,6 +62,9 @@ class OrderIterator {
private: private:
void Reset(); void Reset();
// Returns the order to use for |child|.
int ResolvedOrder(const LayoutBox& child) const;
const LayoutBox* container_box_; const LayoutBox* container_box_;
LayoutBox* current_child_ = nullptr; LayoutBox* current_child_ = nullptr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment