mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:37:34 +00:00
LibWeb: Assign hypothetical flex item main sizes as temporary main size
This colors a bit outside the lines of the specification, but the spec doesn't offer a proper explanation for how descendants of a flex item are supposed to have access to the flex item's main size for purposes of percentage resolution. The approach I came up with here was to take the hypothetical main size of each flex item, and assign it as a temporary main size. This allows percentage resolution in descendants to work against the pre-flexing main size of items. This seems to match how other engines behave, although it feels somewhat dirty. If/when we learn more about this, we can come up with something nicer.
This commit is contained in:
parent
6bb738c1b3
commit
869b322a8f
3 changed files with 26 additions and 0 deletions
|
@ -53,6 +53,11 @@ struct LayoutState {
|
|||
void set_content_width(float);
|
||||
void set_content_height(float);
|
||||
|
||||
// NOTE: These are used by FlexFormattingContext to assign a temporary main size to items
|
||||
// early on, so that descendants have something to resolve percentages against.
|
||||
void set_temporary_content_width(float);
|
||||
void set_temporary_content_height(float);
|
||||
|
||||
bool has_definite_width() const { return m_has_definite_width && width_constraint == SizeConstraint::None; }
|
||||
bool has_definite_height() const { return m_has_definite_height && height_constraint == SizeConstraint::None; }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue