LibWeb: Support min-inline-size & max-inline-size

Currently this assumes that writing-mode is horizontal, and therefore
only affects the min-width/max-width
This commit is contained in:
Karthik Karanth 2023-05-23 00:29:01 -07:00 committed by Andreas Kling
parent 72507c318a
commit 733b74af7c
Notes: sideshowbarker 2024-07-17 14:36:19 +09:00
2 changed files with 30 additions and 0 deletions

View file

@ -1227,6 +1227,11 @@
"unitless-length"
]
},
"max-inline-size": {
"logical-alias-for": "max-width",
"__comment": "Also a logical alias for max-height",
"initial": "none"
},
"max-width": {
"inherited": false,
"initial": "none",
@ -1257,6 +1262,11 @@
"unitless-length"
]
},
"min-inline-size": {
"logical-alias-for": "min-width",
"__comment": "Also a logical alias for min-height",
"initial": "0"
},
"min-width": {
"inherited": false,
"initial": "auto",

View file

@ -675,6 +675,26 @@ static void set_property_expanding_shorthands(StyleProperties& style, CSS::Prope
return;
}
if (property_id == CSS::PropertyID::MaxInlineSize || property_id == CSS::PropertyID::MinInlineSize) {
// FIXME: Use writing-mode to determine if we should set width or height.
bool is_horizontal = true;
if (is_horizontal) {
if (property_id == CSS::PropertyID::MaxInlineSize) {
style.set_property(CSS::PropertyID::MaxWidth, value);
} else {
style.set_property(CSS::PropertyID::MinWidth, value);
}
} else {
if (property_id == CSS::PropertyID::MaxInlineSize) {
style.set_property(CSS::PropertyID::MaxHeight, value);
} else {
style.set_property(CSS::PropertyID::MinHeight, value);
}
}
return;
}
style.set_property(property_id, value);
}