1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:18:13 +00:00

LibWeb: Rename "offset" in box model metrics to "inset"

The CSS Positioned Layout spec refers to the top/left/bottom/right
properties as "inset" properties, so let's use the same terminology.
This commit is contained in:
Andreas Kling 2022-03-26 13:26:42 +01:00
parent 54c3053bc3
commit fe908e7db2
5 changed files with 26 additions and 26 deletions

View file

@ -439,7 +439,7 @@ void BlockFormattingContext::place_block_level_element_in_normal_flow_vertically
compute_vertical_box_model_metrics(child_box, containing_block);
float y = box_state.border_box_top()
+ box_state.offset_top;
+ box_state.inset_top;
Vector<float> collapsible_margins;
@ -529,7 +529,7 @@ void BlockFormattingContext::place_block_level_element_in_normal_flow_horizontal
if (containing_block.computed_values().text_align() == CSS::TextAlign::LibwebCenter) {
x += (available_width_within_containing_block / 2) - box_state.content_width / 2;
} else {
x += box_state.margin_box_left() + box_state.offset_left;
x += box_state.margin_box_left() + box_state.inset_left;
}
box_state.offset = Gfx::FloatPoint { x, box_state.offset.y() };
@ -592,7 +592,7 @@ void BlockFormattingContext::layout_floating_box(Box const& box, BlockContainer
// First we place the box normally (to get the right y coordinate.)
// If we have a LineBuilder, we're in the middle of inline layout, otherwise this is block layout.
if (line_builder) {
float y_offset = box_state.margin_box_top() + box_state.offset_top;
float y_offset = box_state.margin_box_top() + box_state.inset_top;
line_builder->break_if_needed(layout_mode, box_state.border_box_width(), false);
box_state.offset.set_y(line_builder->current_y() + y_offset);
line_builder->adjust_last_line_after_inserting_floating_box({}, box.computed_values().float_(), box_state.border_box_width());

View file

@ -22,7 +22,7 @@ public:
PixelBox margin;
PixelBox padding;
PixelBox border;
PixelBox offset;
PixelBox inset;
PixelBox margin_box() const;
PixelBox padding_box() const;

View file

@ -669,7 +669,7 @@ void FormattingContext::compute_height_for_absolutely_positioned_non_replaced_el
else if (specified_height.is_auto() && !specified_top.is_auto() && specified_bottom.is_auto()) {
specified_height = CSS::Length(compute_auto_height_for_block_level_element(m_state, box), CSS::Length::Type::Px);
box_state.offset_bottom = containing_block_state.content_height - specified_height.to_px(box) - specified_top.to_px(box) - box_state.margin_top - box_state.padding_top - box_state.border_top - box_state.margin_bottom - box_state.padding_bottom - box_state.border_bottom;
box_state.inset_bottom = containing_block_state.content_height - specified_height.to_px(box) - specified_top.to_px(box) - box_state.margin_top - box_state.padding_top - box_state.border_top - box_state.margin_bottom - box_state.padding_bottom - box_state.border_bottom;
}
else if (specified_height.is_auto() && !specified_top.is_auto() && !specified_bottom.is_auto()) {
@ -709,10 +709,10 @@ void FormattingContext::layout_absolutely_positioned_element(Box const& box)
box_state.border_top = box.computed_values().border_top().width;
box_state.border_bottom = box.computed_values().border_bottom().width;
box_state.offset_left = box.computed_values().offset().left.resolved(box, width_of_containing_block).to_px(box);
box_state.offset_top = box.computed_values().offset().top.resolved(box, height_of_containing_block).to_px(box);
box_state.offset_right = box.computed_values().offset().right.resolved(box, width_of_containing_block).to_px(box);
box_state.offset_bottom = box.computed_values().offset().bottom.resolved(box, height_of_containing_block).to_px(box);
box_state.inset_left = box.computed_values().offset().left.resolved(box, width_of_containing_block).to_px(box);
box_state.inset_top = box.computed_values().offset().top.resolved(box, height_of_containing_block).to_px(box);
box_state.inset_right = box.computed_values().offset().right.resolved(box, width_of_containing_block).to_px(box);
box_state.inset_bottom = box.computed_values().offset().bottom.resolved(box, height_of_containing_block).to_px(box);
auto is_auto = [](auto const& length_percentage) {
return length_percentage.is_length() && length_percentage.length().is_auto();
@ -728,12 +728,12 @@ void FormattingContext::layout_absolutely_positioned_element(Box const& box)
Gfx::FloatPoint used_offset;
if (!is_auto(box.computed_values().offset().left)) {
float x_offset = box_state.offset_left
float x_offset = box_state.inset_left
+ box_state.border_box_left();
used_offset.set_x(x_offset + box_state.margin_left);
} else if (!is_auto(box.computed_values().offset().right)) {
float x_offset = 0
- box_state.offset_right
- box_state.inset_right
- box_state.border_box_right();
used_offset.set_x(containing_block_state.content_width + x_offset - box_state.content_width - box_state.margin_right);
} else {
@ -742,12 +742,12 @@ void FormattingContext::layout_absolutely_positioned_element(Box const& box)
}
if (!is_auto(box.computed_values().offset().top)) {
float y_offset = box_state.offset_top
float y_offset = box_state.inset_top
+ box_state.border_box_top();
used_offset.set_y(y_offset + box_state.margin_top);
} else if (!is_auto(box.computed_values().offset().bottom)) {
float y_offset = 0
- box_state.offset_bottom
- box_state.inset_bottom
- box_state.border_box_bottom();
used_offset.set_y(containing_block_state.content_height + y_offset - box_state.content_height - box_state.margin_bottom);
} else {
@ -786,23 +786,23 @@ void FormattingContext::compute_position(Box const& box)
if (specified_left.is_auto() && specified_right.is_auto()) {
// If both 'left' and 'right' are 'auto' (their initial values), the used values are '0' (i.e., the boxes stay in their original position).
box_state.offset_left = 0;
box_state.offset_right = 0;
box_state.inset_left = 0;
box_state.inset_right = 0;
} else if (specified_left.is_auto()) {
// If 'left' is 'auto', its used value is minus the value of 'right' (i.e., the boxes move to the left by the value of 'right').
box_state.offset_right = specified_right.to_px(box);
box_state.offset_left = 0 - box_state.offset_right;
box_state.inset_right = specified_right.to_px(box);
box_state.inset_left = 0 - box_state.inset_right;
} else if (specified_right.is_auto()) {
// If 'right' is specified as 'auto', its used value is minus the value of 'left'.
box_state.offset_left = specified_left.to_px(box);
box_state.offset_right = 0 - box_state.offset_left;
box_state.inset_left = specified_left.to_px(box);
box_state.inset_right = 0 - box_state.inset_left;
} else {
// If neither 'left' nor 'right' is 'auto', the position is over-constrained, and one of them has to be ignored.
// If the 'direction' property of the containing block is 'ltr', the value of 'left' wins and 'right' becomes -'left'.
// If 'direction' of the containing block is 'rtl', 'right' wins and 'left' is ignored.
// FIXME: Check direction (assuming 'ltr' for now).
box_state.offset_left = specified_left.to_px(box);
box_state.offset_right = 0 - box_state.offset_left;
box_state.inset_left = specified_left.to_px(box);
box_state.inset_right = 0 - box_state.inset_left;
}
}

View file

@ -52,7 +52,7 @@ void FormattingState::commit()
auto& node_state = *it.value;
// Transfer box model metrics.
node.box_model().offset = { node_state.offset_top, node_state.offset_right, node_state.offset_bottom, node_state.offset_left };
node.box_model().inset = { node_state.inset_top, node_state.inset_right, node_state.inset_bottom, node_state.inset_left };
node.box_model().padding = { node_state.padding_top, node_state.padding_right, node_state.padding_bottom, node_state.padding_left };
node.box_model().border = { node_state.border_top, node_state.border_right, node_state.border_bottom, node_state.border_left };
node.box_model().margin = { node_state.margin_top, node_state.margin_right, node_state.margin_bottom, node_state.margin_left };

View file

@ -54,10 +54,10 @@ struct FormattingState {
float padding_top { 0 };
float padding_bottom { 0 };
float offset_left { 0 };
float offset_right { 0 };
float offset_top { 0 };
float offset_bottom { 0 };
float inset_left { 0 };
float inset_right { 0 };
float inset_top { 0 };
float inset_bottom { 0 };
Vector<LineBox> line_boxes;